On May 6, 2010, at 7:45 PM, Adam Murdoch wrote:

> 
> 
> On 6/05/10 7:18 AM, Steve Appling wrote:
>> We are seeing a problem on some machines where we get an NPE in 
>> JUnitTestClassProcessor line 64. It appears that sometimes executor is not 
>> set before processTestClass is called.  I'm not quite sure I'm following the 
>> logic here, but it looks like a possible problem with the 
>> ForkingTestClassProcessor.  Does the call on line 71 of 
>> ForkingTestClassProcessor (workerProcess.start()) end up calling 
>> worker.startProcessing in another thread?  If so, then I think there is a 
>> race condition.  JUnitTestClassProcessor.processTestClass can be called 
>> before JUnitTestClassProcessor.startProcessing.
>> 
>> 
> 
> TestWorker calls startProcessing() and then kicks off the thread that will 
> call processTestClass(). So, there shouldn't be a race condition. But they 
> are called very close together from different threads, so I wonder if it's a 
> memory read-write ordering problem.
> 
> I've pushed a potential fix for this to head. Could you try it out?
> 
> 

I tried it, but it still seems to be failing.  FYI, it is failing while trying 
to run unit tests under buildSrc.  Don't know that that is significant.

I am getting the following (only on one machine):
...
buildSrc:test
Test 'Gradle Worker 1' FAILED: org.gradle.api.GradleException: Could not execute
test class 'ideaplugins.CopyControllerTest'.

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\development\webctrl\main\dev\modules\buildSrc\build.gradle'

* What went wrong:
Execution failed for task ':test'.
Cause: There were failing tests. See the report at C:\development\webctrl\main\d
ev\modules\buildSrc\build\reports\tests.

* Exception is:
org.gradle.api.tasks.LocationAwareTaskExecutionException: Build file 
'C:\development\webctrl\main\dev\modules\buildSrc\build.gradle'
Execution failed for task ':test'.
 at 
org.gradle.api.internal.tasks.DefaultTaskExecuter.executeActions(DefaultTaskExecuter.java:63)
 at 
org.gradle.api.internal.tasks.DefaultTaskExecuter.execute(DefaultTaskExecuter.java:41)
 at 
org.gradle.api.internal.project.taskfactory.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:32)
 at 
org.gradle.api.internal.project.taskfactory.ExecutionShortCircuitTaskExecuter.execute(ExecutionShortCircuitTaskExecuter.java:48)
 at 
org.gradle.api.internal.tasks.SkipTaskExecuter.doExecute(SkipTaskExecuter.java:57)
 at 
org.gradle.api.internal.tasks.SkipTaskExecuter.execute(SkipTaskExecuter.java:35)
 at 
org.gradle.api.internal.tasks.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:32)
 at org.gradle.api.internal.AbstractTask.execute(AbstractTask.java:226)
 at 
org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:167)
 at 
org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:160)
 at 
org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:78)
 at 
org.gradle.execution.TaskNameResolvingBuildExecuter.execute(TaskNameResolvingBuildExecuter.java:161)
 at 
org.gradle.execution.DelegatingBuildExecuter.execute(DelegatingBuildExecuter.java:54)
 at 
org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:180)
 at 
org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:115)
 at 
org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
 at 
org.gradle.initialization.BuildSourceBuilder.createBuildSourceClasspath(BuildSourceBuilder.java:114)
 at 
org.gradle.initialization.BuildSourceBuilder.buildAndCreateClassLoader(BuildSourceBuilder.java:64)
 at 
org.gradle.initialization.SettingsHandler.findSettingsAndLoadIfAppropriate(SettingsHandler.java:85)
 at 
org.gradle.initialization.SettingsHandler.findAndLoadSettings(SettingsHandler.java:46)
 at 
org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:155)
 at 
org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:115)
 at 
org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
 at org.gradle.launcher.Main.execute(Main.java:93)
 at org.gradle.launcher.Main.main(Main.java:42)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.gradle.launcher.GradleMain.main(GradleMain.java:54)
Caused by: org.gradle.api.GradleException: There were failing tests. See the 
report at C:\development\webctrl\main\dev\modules\buildSrc\build\reports\tests.
 at org.gradle.api.tasks.testing.Test.executeTests(Test.java:338)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
 at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
 at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
 at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
 at 
org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:158)
 at 
org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:93)
 at org.gradle.api.tasks.testing.Test_Decorated.invokeMethod(Unknown Source)
 at groovy.lang.GroovyObject$invokeMethod$0.call(Unknown Source)
 at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:26)
 at 
org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$2.execute(AnnotationProcessingTaskFactory.java:127)
 at 
org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$2.execute(AnnotationProcessingTaskFactory.java:125)
 at 
org.gradle.api.internal.tasks.DefaultTaskExecuter.executeActions(DefaultTaskExecuter.java:55)
 ... 29 common frames omitted

This hides the root exception in JUnitTestClassProcessor.  The problem isn't a 
failing test, no tests are run - I added a line to print out the stack trace 
and got an NPE on line 64.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to