Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 354406 - [insight] out of memory weaving class from groovy
Summary: [insight] out of memory weaving class from groovy
Status: RESOLVED WONTFIX
Alias: None
Product: AspectJ
Classification: Tools
Component: LTWeaving (show other bugs)
Version: DEVELOPMENT   Edit
Hardware: PC Mac OS X - Carbon (unsup.)
: P3 major (vote)
Target Milestone: 1.6.12   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-10 12:00 EDT by Andrew Clement CLA
Modified: 2011-08-12 19:02 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 Andrew Clement CLA 2011-08-10 12:00:14 EDT
SEVERE: org/codehaus/groovy/runtime/ArrayUtil
java.lang.OutOfMemoryError: Java heap space
	at java.util.HashMap.addEntry(HashMap.java:770)
	at java.util.HashMap.put(HashMap.java:402)
	at java.util.HashSet.add(HashSet.java:217)
	at org.aspectj.apache.bcel.generic.InstructionHandle.addTargeter(InstructionHandle.java:161)
	at org.aspectj.apache.bcel.generic.MethodGen.<init>(MethodGen.java:300)
	at org.aspectj.weaver.bcel.LazyMethodGen.initialize(LazyMethodGen.java:337)
	at org.aspectj.weaver.bcel.LazyMethodGen.markAsChanged(LazyMethodGen.java:505)
	at org.aspectj.weaver.bcel.LazyMethodGen.getBody(LazyMethodGen.java:895)
	at org.aspectj.weaver.bcel.BcelShadow.makeShadowForMethod(BcelShadow.java:679)
	at org.aspectj.weaver.bcel.BcelShadow.makeMethodExecution(BcelShadow.java:675)
	at org.aspectj.weaver.bcel.BcelShadow.makeMethodExecution(BcelShadow.java:655)
	at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2531)
	at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:474)
	at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:100)
	at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1694)
	at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1638)
	at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1401)
	at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1187)
	at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:469)
	at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:320)
	at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:99)
	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:385)
Comment 1 Andrew Clement CLA 2011-08-12 19:02:34 EDT
this was due to the unusual ArrayUtil type in groovy that has methods with more than 200 parameters.  Copying the targeters for those is going to use a lot of memory.   I imagine that typically those methods don't need weaving, it would be an usual aspect that wanted to (in this case it was a rogue perthis).  I might revisit the memory usage of targeter copying if this comes up in a real use case.