Azure / Azure/azure-libraries-for-java

NPE when listing resources with an invalid subscriptionid

Offen
#201 0 Kommentare 1 Reaktion 1 zugewiesene Person Beansprucht von @anuchandy Auf GitHub ansehen
Bug customer-reported Investigate Storage
Vorherrschende Sprache
Java
Sterne
97
Forks
102
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Found following bug on my first test with this library (in Groovy):

`import com.microsoft.azure.AzureEnvironment
import com.microsoft.azure.credentials.ApplicationTokenCredentials
import com.microsoft.azure.management.Azure

// authentication according to: https://github.com/Azure/azure-libraries-for-java/blob/master/AUTH.md
def client = "xxxxxxxxxxxxxxx"
def tenant = "xxxxxxxxxxxxxxx"
def key = "xxxxxxxxxxxxxxx"
def subscriptionId = "xxxxxxxxxxxxxxxxxx"

ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(client, tenant, key, AzureEnvironment.AZURE)
Azure azure = Azure.authenticate(credentials).withSubscription(subscriptionId)

storageAccounts = azure.storageAccounts()
accounts = storageAccounts.listByResourceGroup("RG_DTA")
accounts.each { account ->
println account.name()
}`

I accidentally used a wrong subscriptionid and got a npe:
`java.lang.NullPointerException
at com.microsoft.azure.management.storage.implementation.StorageAccountsInner$26.call(StorageAccountsInner.java:782)
at com.microsoft.azure.management.storage.implementation.StorageAccountsInner$26.call(StorageAccountsInner.java:777)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:69)
at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$RequestArbiter.request(RxJavaCallAdapterFactory.java:173)
at rx.Subscriber.setProducer(Subscriber.java:211)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:152)
at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:138)
at rx.Observable.unsafeSubscribe(Observable.java:10142)
at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48)
at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.subscribe(Observable.java:10238)
at rx.Observable.subscribe(Observable.java:10205)
at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:444)
at rx.observables.BlockingObservable.single(BlockingObservable.java:341)
at com.microsoft.azure.management.storage.implementation.StorageAccountsInner.listByResourceGroup(StorageAccountsInner.java:722)
at com.microsoft.azure.management.resources.fluentcore.arm.collection.implementation.TopLevelModifiableResourcesImpl.listByResourceGroup(TopLevelModifiableResourcesImpl.java:123)
at com.microsoft.azure.management.resources.fluentcore.arm.collection.SupportsListingByResourceGroup$listByResourceGroup.call(Unknown Source)
at deploy.run(deploy.groovy:15)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)`

This line: ServiceResponse> clientResponse = new ServiceResponse>(result.body().items(), result.response()); in StorageAccountsInner should check if body is null (which it is with a wrong subscriptionid) and throw an exception with a more descriptive error. The raw response on result contains the error: Response{protocol=http/1.1, code=404, message=Not Found, url=https://management.azure.com/subscriptions/xxxxxxxxxxxxxxxx/resourceGroups/RG_xxx/providers/Microsoft.Storage/storageAccounts?api-version=2017-10-01}

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.