Bug 416440 - NullPointerException in Dump.dumpOnExit when weaving groovy script being compiled
Summary: NullPointerException in Dump.dumpOnExit when weaving groovy script being comp...
Status: NEW
Alias: None
Product: AspectJ
Classification: Tools
Component: LTWeaving (show other bugs)
Version: 1.7.2   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-03 10:03 EDT by Steve Ash CLA
Modified: 2013-09-03 10:03 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Ash CLA 2013-09-03 10:03:25 EDT
Strangely I don't get this every time.  We would've been compiling the same script on multiple threads all at the same time -- so perhaps its an unfortunate race condition that I only hit every once in a while.  It doesn't appear to cause any problems.  I actually don't even want to weave these groovy script files that we compile on the fly like this (see stack trace).  I don't know why they are being included, because they shouldn't be passing the <include> in my aop.xml.

Anyways get this on stderr:
---- AspectJ Properties ---
AspectJ Compiler 1.7.2 built on Friday Feb 15, 2013 at 18:40:45 GMT
---- Dump Properties ---
Dump file: ajcore.20130903.084303.993.txt
Dump reason: java.lang.NullPointerException
Dump on exception: true
Dump at exit condition: abort
---- Exception Information ---
java.lang.NullPointerException
	at org.aspectj.weaver.Dump.dumpOnExit(Dump.java:163)
	at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:112)
	at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54)
	at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
	at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
	at java.lang.ClassLoader.defineClass1(Native M
ethod)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:788)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:55)
	at groovy.lang.GroovyClassLoader$ClassCollector.createClass(GroovyClassLoader.java:519)
	at groovy.lang.GroovyClassLoader$ClassCollector.onClassNode(GroovyClassLoader.java:536)
	at groovy.lang.GroovyClassLoader$ClassCollector.call(GroovyClassLoader.java:540)
	at org.codehaus.groovy.control.CompilationUnit$14.call(CompilationUnit.java:776)
	at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:967)
	at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:546)
	at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:524)
	at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:501)
	at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:306)
	at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:287)
	at groovy.lang.GroovyShell.parseClass(GroovyShell.java:731)
	at groovy.lang.GroovyShell.parse(GroovyShell.java:743)
	at groovy.lang.GroovyShell.parse(GroovyShell.java:770)
	at groovy.lang.GroovyShell.parse(GroovyShell.java:761)
	at com.argodata.match.util.script.GroovyShellCompiler.parseScript(GroovyShellCompiler.java:50)
	at com.argodata.match.util.script.GroovyShellCompiler.compile(GroovyShellCompiler.java:41)
	at com.argodata.match.matching.classification.GroovyScriptEntityPairClassifierFactory.tryLoadFromMatchConfig(GroovyScriptEntityPairClassifierFactory.java:86)
	at com.argodata.match.matching.classification.GroovyScriptEntityPairClassifierFactory.loadRunner(GroovyScriptEntityPairClassifierFactory.java:71)
	at com.argodata.match.matching.classification.GroovyScriptEntityPairClassifierFactory.access$1(GroovyScriptEntityPairClassifierFactory.java:70)
	at com.argodata.match.matching.classification.GroovyScriptEntityPairClassifierFactory$1.get(GroovyScriptEntityPairClassifierFactory.java:65)
	at com.argodata.match.matching.classification.GroovyScriptEntityPairClassifierFactory$1.get(GroovyScriptEntityPairClassifierFactory.java:1)
	at com.argodata.match.matching.classification.GroovyScriptEntityPairClassifier$GroovyShellRunnerThreadLocal.initialValue(GroovyScriptEntityPairClassifier.java:170)
	at com.argodata.match.matching.classification.GroovyScriptEntityPairClassifier$GroovyShellRunnerThreadLocal.initialValue(GroovyScriptEntityPairClassifier.java:1)
	at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:160)
	at java.lang.ThreadLocal.get(ThreadLocal.java:150)
	at com.argodata.match.matching.classification.GroovyScriptEntityPairClassifier.invokeScript(GroovyScriptEntityPairClassifier.java:98)
	at com.argodata.match.matching.classification.GroovyScriptEntityPairClassifier.classify(GroovyScriptEntityPairClassifier.java:66)
	at com.argodata.match.profiling.profiling.PairProfilingLinkerCallback.observeResults(PairProfilingLinkerCallback.java:36)
	at com.argodata.match.matching.analysis.PairProfiler.evaluate(PairProfiler.java:79)
	at com.argodata.match.profiling.profiling.ParallelBlockPairProfiler$PairConsumer.consume(ParallelBlockPairProfiler.java:143)
	at com.argodata.match.profiling.profiling.ParallelBlockPairProfiler$PairConsumer.consume(ParallelBlockPairProfiler.java:1)
	at com.argodata.jcf.spring.concurrent.sce.ConsumerRunner.tryToRun(ConsumerRunner.java:92)
	at com.argodata.jcf.spring.concurrent.sce.ConsumerRunner.call(ConsumerRunner.java:61)
	at com.argodata.jcf.spring.concurrent.sce.ConsumerRunner.call(ConsumerRunner.java:35)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:724)