Bug 326266 - unmessaged AJ RuntimeException when building a non-AJ Java file
Summary: unmessaged AJ RuntimeException when building a non-AJ Java file
Status: RESOLVED WORKSFORME
Alias: None
Product: AspectJ
Classification: Tools
Component: IDE (show other bugs)
Version: 1.6.10   Edit
Hardware: PC Linux
: P3 blocker (vote)
Target Milestone: ---   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-27 01:57 EDT by Christopher Smith CLA
Modified: 2010-10-25 12:25 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.