the following code creates an exception , but if you try to get the http code you'll get an OK
it seems the response in ResposneHandler get overriden by a subsequenet getLocations call
AzDServiceClient azDServiceClient = AzDService.builder().authentication(new PersonalAccessTokenCredential(Instance.BASE_INSTANCE.append(organization), personalAccessToken)).buildClient();
WorkItemTrackingRequestBuilder workItemTrackingRequestBuilder = azDServiceClient.workItemTracking();
WorkItemTypesRequestBuilder workItemTypesRequestBuilder = workItemTrackingRequestBuilder.workItemTypes();
try {
WorkItemTypes list = workItemTypesRequestBuilder.list();
}catch (AzDException e){
e.printStackTrace();
HttpStatusCode statusCode = ResponseHandler.getResponse().getStatusCode();
System.out.println(statusCode);
}
org.azd.exceptions.AzDException: UnAuthorizedException: Given token doesn't have access to resource 'https://dev.azure.com/securitas-healthcare/_apis/wit/workItemTypes?api-version=7.2-preview.2'.
at org.azd.abstractions.handlers.ErrorResponseHandler.handleAsync(ErrorResponseHandler.java:43)
at org.azd.abstractions.ResponseHandler.nextAsync(ResponseHandler.java:33)
at org.azd.abstractions.handlers.RedirectResponseHandler.handleAsync(RedirectResponseHandler.java:15)
at org.azd.abstractions.ResponseHandler.nextAsync(ResponseHandler.java:33)
at org.azd.abstractions.handlers.ApiResponseHandler.handleAsync(ApiResponseHandler.java:22)
at org.azd.abstractions.pipelines.ResponsePipeline.processAsync(ResponsePipeline.java:18)
at org.azd.abstractions.internals.ClientRequestAdapter.lambda$executeAsync$3(ClientRequestAdapter.java:87)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire$$$capture(CompletableFuture.java:1150)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java)
at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.<init>(CompletableFuture.java:1129)
at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1173)
at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341)
at org.azd.abstractions.internals.ClientRequestAdapter.executeAsync(ClientRequestAdapter.java:85)
at org.azd.abstractions.internals.ClientRequestAdapter.execute(ClientRequestAdapter.java:136)
at org.azd.workitemtracking.workitemtypes.WorkItemTypesRequestBuilder.list(WorkItemTypesRequestBuilder.java:76)
at TestAPIScratch.testSearch(TestAPIScratch.java:90)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
the following code creates an exception , but if you try to get the http code you'll get an OK
it seems the response in ResposneHandler get overriden by a subsequenet getLocations call