Renamed from: LocationAwareException - org.gradle.tooling.ResultHandler receiving error notifications yet test process is working
I am using the Gradle tooling API to kick off tests via a Java Spring Boot service. I am using ScheduledFutures with the Spring Framework ThreadPoolTaskScheduler to queue up tests and run X of them at a time in a Runnable class. Everything seems to be working nicely.
Basically in my Runnable class I do the following:
ProjectConnection connection = GradleConnector.newConnector()
.forProjectDirectory(new File(workingDir))
.connect();
...
TestLauncher tl = connection.newTestLauncher();
...
tl.withJvmTestClasses(testClass);
...
TestResultHandler handler = new TestResultHandler();
tl.run(handler);
...
connection.close();
My TestResultHandler just dumps out info in onFailure:
import org.gradle.tooling.GradleConnectionException;
import org.gradle.tooling.ResultHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestResultHandler implements ResultHandler<Object> {
private static final Logger logger = LoggerFactory.getLogger(TestResultHandler.class);
@Override
public void onFailure(GradleConnectionException e) {
logger.info("toString:");
logger.info(e.toString());
logger.info("getCause:");
logger.info(e.getCause().toString());
logger.info("getStackTrace:");
for (StackTraceElement elem : e.getStackTrace())
logger.info(elem.toString());
}
}
My tests definitely appear to be working and I am collecting the results, but I seeing stuff like this from the TestResultHandler:
toString:
org.gradle.tooling.BuildException: Could not execute tests using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-6.8-bin.zip'.
getCause:
org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':test'.
getStackTrace:
org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:51)
org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29)
org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:43)
org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:69)
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
java.lang.Thread.run(Thread.java:748)
Does anyone know what this means and if I should be concerned?
EDIT: Here is a sample output frome.printStackTrace(). Thanks, @ToYonos
Caused by: org.gradle.api.GradleException: Could not write XML test results for us.xxx.yyy.MiscTest to file /home/gradle/src/build/test-results/test/20210218-15_48_20_126/TEST-us.xxx.yyy.MiscTest.xml.
at org.gradle.api.internal.tasks.testing.junit.result.Binary2JUnitXmlReportGenerator$JUnitXmlReportFileGenerator.run(Binary2JUnitXmlReportGenerator.java:125)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$QueueWorker.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable.runOperation(DefaultBuildOperationQueue.java:241)
at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable.doRunBatch(DefaultBuildOperationQueue.java:222)
at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable.lambda$runBatch$0(DefaultBuildOperationQueue.java:212)
at org.gradle.internal.resources.AbstractResourceLockRegistry.whileDisallowingLockChanges(AbstractResourceLockRegistry.java:70)
at org.gradle.internal.work.DefaultWorkerLeaseService.whileDisallowingProjectLockChanges(DefaultWorkerLeaseService.java:185)
at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable.lambda$runBatch$1(DefaultBuildOperationQueue.java:212)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:213)
at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable.runBatch(DefaultBuildOperationQueue.java:200)
at org.gradle.internal.operations.DefaultBuildOperationQueue$WorkerRunnable.run(DefaultBuildOperationQueue.java:172)
... 3 more
Caused by: org.gradle.api.UncheckedIOException: java.io.EOFException
at org.gradle.api.internal.tasks.testing.junit.result.TestOutputStore$Reader.doRead(TestOutputStore.java:389)
at org.gradle.api.internal.tasks.testing.junit.result.TestOutputStore$Reader.writeAllOutput(TestOutputStore.java:314)
at org.gradle.api.internal.tasks.testing.junit.result.InMemoryTestResultsProvider$3.execute(InMemoryTestResultsProvider.java:61)
at org.gradle.api.internal.tasks.testing.junit.result.InMemoryTestResultsProvider$3.execute(InMemoryTestResultsProvider.java:58)
at org.gradle.api.internal.tasks.testing.junit.result.TestOutputStoreBackedResultsProvider.withReader(TestOutputStoreBackedResultsProvider.java:36)
at org.gradle.api.internal.tasks.testing.junit.result.InMemoryTestResultsProvider.writeAllOutput(InMemoryTestResultsProvider.java:58)
at org.gradle.api.internal.tasks.testing.junit.result.JUnitXmlResultWriter.writeOutputs(JUnitXmlResultWriter.java:94)
at org.gradle.api.internal.tasks.testing.junit.result.JUnitXmlResultWriter.write(JUnitXmlResultWriter.java:79)
at org.gradle.api.internal.tasks.testing.junit.result.Binary2JUnitXmlReportGenerator$JUnitXmlReportFileGenerator.run(Binary2JUnitXmlReportGenerator.java:122)
... 17 more
Caused by: java.io.EOFException
at org.gradle.internal.serialize.kryo.KryoBackedDecoder.maybeEndOfStream(KryoBackedDecoder.java:74)
at org.gradle.internal.serialize.kryo.KryoBackedDecoder.readBoolean(KryoBackedDecoder.java:138)
at org.gradle.api.internal.tasks.testing.junit.result.TestOutputStore$Reader.doRead(TestOutputStore.java:350)
... 25 more
Caused by: com.esotericsoftware.kryo.KryoException: Buffer underflow.
at com.esotericsoftware.kryo.io.Input.require(Input.java:181)
at com.esotericsoftware.kryo.io.Input.readBoolean(Input.java:783)
at org.gradle.internal.serialize.kryo.KryoBackedDecoder.readBoolean(KryoBackedDecoder.java:136)
... 26 more
This is actually a bit truncated. It was too large to include it all, but I think the most important parts are here.
EDIT 2:
Ran out of room here... continued in response 1 which is not really a question response.