Bug 43714 - weaving from an input jar into that same jar..
Summary: weaving from an input jar into that same jar..
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: 1.1.1   Edit
Hardware: PC Windows XP
: P3 enhancement (vote)
Target Milestone: 1.2   Edit
Assignee: Adrian Colyer CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-09-25 19:41 EDT by Mik Kersten CLA
Modified: 2004-03-16 06:48 EST (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 Mik Kersten CLA 2003-09-25 19:41:56 EDT
..is obviously a wierd thing to do.  So we should inform people with an error 
message rather than spewing a stack shown below at them.  The weaver is in 
fact trying to throw an error message but the "ResolvedTypeX inAspect" 
parameter that it tries to get the world from is null.  This is the second 
time I encounter poor error behavior in the weaver because it is trying to get 
the message handler from a null thing's world.  Perhaps it should be getting 
the message handler from somehwere more accessible?

-----------

null
java.lang.NullPointerException
	at org.aspectj.weaver.patterns.PerFromSuper.concretize
(PerFromSuper.java:59)
	at org.aspectj.weaver.CrosscuttingMembers.setPerClause
(CrosscuttingMembers.java:205)
	at org.aspectj.weaver.ResolvedTypeX.collectCrosscuttingMembers
(ResolvedTypeX.java:329)
	at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect
(CrosscuttingMembersSet.java:50)
	at org.aspectj.weaver.bcel.BcelWeaver.addLibraryJarFile
(BcelWeaver.java:107)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld
(AjBuildManager.java:194)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild
(AjBuildManager.java:113)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild
(AjBuildManager.java:70)
	at org.aspectj.ajde.internal.CompilerAdapter.compile
(CompilerAdapter.java:103)
	at org.aspectj.ajde.internal.AspectJBuildManager$CompilerThread.run
(AspectJBuildManager.java:165)
null
java.lang.NullPointerException
	at org.aspectj.weaver.patterns.PerFromSuper.concretize
(PerFromSuper.java:59)
	at org.aspectj.weaver.CrosscuttingMembers.setPerClause
(CrosscuttingMembers.java:205)
	at org.aspectj.weaver.ResolvedTypeX.collectCrosscuttingMembers
(ResolvedTypeX.java:329)
	at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect
(CrosscuttingMembersSet.java:50)
	at org.aspectj.weaver.bcel.BcelWeaver.addLibraryJarFile
(BcelWeaver.java:107)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld
(AjBuildManager.java:194)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild
(AjBuildManager.java:113)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild
(AjBuildManager.java:70)
	at org.aspectj.ajde.internal.CompilerAdapter.compile
(CompilerAdapter.java:103)
	at org.aspectj.ajde.internal.AspectJBuildManager$CompilerThread.run
(AspectJBuildManager.java:165)
Comment 1 Adrian Colyer CLA 2003-12-08 08:54:35 EST
included in list under the general category "improve error messages from weaver"
Comment 2 Erik Hilsdale CLA 2004-01-29 11:19:55 EST
I'm being chicken here and reassigning this bug to Jim, with the
expectation that he'll either be able to easily fix it (since
it's front-endy) or he'll be able to pingpong it back to me.
Comment 3 Adrian Colyer CLA 2004-02-19 09:26:05 EST
I'll take a look at this in the 'front-end'...
Comment 4 Adrian Colyer CLA 2004-03-16 06:48:40 EST
FROM: 

invalid stored block lengths
invalid stored block lengths
java.util.zip.ZipException: invalid stored block lengths
	at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:137)
	at java.util.zip.ZipInputStream.read(ZipInputStream.java:137)
	at org.aspectj.util.FileUtil.readAsByteArray(FileUtil.java:1042)
	at org.aspectj.weaver.bcel.BcelWeaver.addJarFile(BcelWeaver.java:208)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.
initBcelWorld(AjBuildManager.java:256)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.
doBuild(AjBuildManager.java:130)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.
batchBuild(AjBuildManager.java:81)
	at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:104)
	at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:53)
	at org.aspectj.tools.ajc.Main.run(Main.java:231)
	at org.aspectj.tools.ajc.Main.runMain(Main.java:168)
	at org.aspectj.tools.ajc.Main.main(Main.java:81)

TO:
C:\ColyerRoot\...\oneInjar.jar error Could not read input jar file C:
\ColyerRoot\...\injarChange\oneInjar.jar(invalid stored block lengths)
	
1 error

A failure during the writing of an output jar now produces:

error at C:\ColyerRoot\...\notAJar.jar Unable to write outjar C:\ColyerRoot\...
\notAJar.jar(ZIP file must have at least one entry)

I also extended the test harness to support an 'outjar' attribute on 'compile' 
as part of this bug fix.