Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 326266

Summary: unmessaged AJ RuntimeException when building a non-AJ Java file
Product: [Tools] AspectJ Reporter: Christopher Smith <christopher.smith>
Component: IDEAssignee: aspectj inbox <aspectj-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: blocker    
Priority: P3 CC: aclement
Version: 1.6.10   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Christopher Smith CLA 2010-09-27 01:57:19 EDT
Foo is a JPA @Entity that was built by Roo.  All of the AJ functionality has been pushed in to the class, and the class is a rather plain data object.

When trying to compile Java file that contains the call Foo.findAllFoos(), the IDE blows up, marking an error on the file itself, and providing the following error:


java.lang.RuntimeException at org.aspectj.weaver.bcel.BcelObjectType.ensureAspectJAttributesUnpacked(BcelObjectType.java:383)
at org.aspectj.weaver.bcel.BcelObjectType.<init>(BcelObjectType.java:160)
at org.aspectj.weaver.bcel.BcelWorld.buildBcelDelegate(BcelWorld.java:394)
at org.aspectj.weaver.bcel.BcelWorld.resolveDelegate(BcelWorld.java:389)
at org.aspectj.weaver.World.resolveToReferenceType(World.java:460)
at org.aspectj.weaver.World.re ... l.jobs.Worker.run(Worker.java:54)

Compile error: RuntimeException thrown: Problem processing attributes in Foo.class


Please let me know what additional information may be needed.
Comment 1 Christopher Smith CLA 2010-09-27 02:01:41 EDT
I found how to copy the more-detailed error from the marker, and it appears that the weaver is running off the end of some interesting file and bailing out.



Internal compiler error
java.lang.RuntimeException: Problem processing attributes in Foo.class
	at org.aspectj.weaver.bcel.BcelObjectType.ensureAspectJAttributesUnpacked(BcelObjectType.java:383)
	at org.aspectj.weaver.bcel.BcelObjectType.<init>(BcelObjectType.java:160)
	at org.aspectj.weaver.bcel.BcelWorld.buildBcelDelegate(BcelWorld.java:394)
	at org.aspectj.weaver.bcel.BcelWorld.resolveDelegate(BcelWorld.java:389)
	at org.aspectj.weaver.World.resolveToReferenceType(World.java:460)
	at org.aspectj.weaver.World.resolve(World.java:304)
	at org.aspectj.weaver.World.resolve(World.java:217)
	at org.aspectj.ajdt.internal.compiler.lookup.EclipseFactory.fromEclipse(EclipseFactory.java:148)
	at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.weaveInterTypeDeclarations(AjLookupEnvironment.java:661)
	at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.weaveInterTypeDeclarations(AjLookupEnvironment.java:647)
	at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.createBinaryTypeFrom(AjLookupEnvironment.java:1393)
	at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:599)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:276)
	at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:139)
	at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:178)
	at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:451)
	at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport(CompilationUnitScope.java:505)
	at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports(CompilationUnitScope.java:361)
	at org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:430)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:629)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:392)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1019)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:268)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:181)
	at org.aspectj.ajde.core.internal.AjdeCoreBuildManager.performBuild(AjdeCoreBuildManager.java:105)
	at org.aspectj.ajde.core.AjCompiler.buildFresh(AjCompiler.java:97)
	at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:243)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: org.aspectj.weaver.BCException: malformed org.aspectj.weaver.WeaverState attribute (length:3244)java.io.EOFException
when weaving intertype declarations Foo
when processing compilation unit Bar.java
when batch building with classpath: <huge classpath snipped>
	at org.aspectj.weaver.AjAttribute.read(AjAttribute.java:139)
	at org.aspectj.weaver.bcel.Utility.readAjAttributes(Utility.java:101)
	at org.aspectj.weaver.bcel.BcelObjectType.ensureAspectJAttributesUnpacked(BcelObjectType.java:379)
	... 38 more
Comment 2 Andrew Clement CLA 2010-09-27 03:34:34 EDT
this error indicates a mismatch in AspectJ versions.  Two versions of AspectJ are in use and they are not the same, the second one being used is older than the first.  (it cannot understand the attribute put into the class file by the more recent version of AspectJ).  Are you on an up to date dev build of AJDT?
Comment 3 Andrew Clement CLA 2010-10-25 12:25:30 EDT
please reopen if the problem still occurs when all your AspectJ versions are in step.