Bug 450809 - "ZipException: duplicate entry" for duplicate class file on inpath
Summary: "ZipException: duplicate entry" for duplicate class file on inpath
Status: NEW
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: 1.8.4   Edit
Hardware: PC Windows 8
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-10 04:03 EST by Alexander Kriegisch CLA
Modified: 2014-11-10 04:03 EST (History)
0 users

See Also:


Attachments
Demo project reproducing the problem (11.76 KB, application/x-zip-compressed)
2014-11-10 04:03 EST, Alexander Kriegisch CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Kriegisch CLA 2014-11-10 04:03:57 EST
Created attachment 248532 [details]
Demo project reproducing the problem

I tried to help that guy on http://stackoverflow.com/questions/26800286/duplicate-entry-in-aspectj/26806352. As he did not even post a full callstack, I tried to reproduce the problem and was successful. I am attaching a ZIP file containing three Eclipse projects as follows:

SO_AJ_DuplicateZipEntry_AspectJ: aspect DemoAspect -> aspect.jar

SO_AJ_DuplicateZipEntry_Lib: Java classes Application, Demo -> lib.jar

SO_AJ_DuplicateZipEntry_Java: Java class Application -> bin/

Please note that class Application occurs twice.

Now if you enter the SO_AJ_DuplicateZipEntry_Java project directory and run build.bat (or build.sh) containing this command:

ajc -cp "%CLASSPATH%" -inpath ..\SO_AJ_DuplicateZipEntry_Lib\lib.jar;bin -aspectpath ..\SO_AJ_DuplicateZipEntry_AspectJ\aspect.jar -outjar out.jar

there is an error as follows (also contained in build.log inside the ZIP archive):


(...)\SO_AJ_DuplicateZipEntry_Java\bin\Application.class [error] unable to write compilation result
	
Exception thrown from AspectJ 1.8.4
(...)

duplicate entry: Application.class

when weaving 
when batch building BuildConfig[null] #Files=0 AopXmls=#0
duplicate entry: Application.class
java.util.zip.ZipException: duplicate entry: Application.class
	at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:233)
	at java.util.jar.JarOutputStream.putNextEntry(JarOutputStream.java:109)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager$4.writeZipEntry(AjBuildManager.java:1166)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager$4.acceptResult(AjBuildManager.java:1103)
	at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.acceptResult(AjPipeliningCompilerAdapter.java:460)
	at org.aspectj.ajdt.internal.compiler.WeaverAdapter.finishedWith(WeaverAdapter.java:225)
	at org.aspectj.ajdt.internal.compiler.WeaverAdapter.weaveCompleted(WeaverAdapter.java:186)
	at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1193)
	at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.weaveQueuedEntries(AjPipeliningCompilerAdapter.java:514)
	at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.afterCompiling(AjPipeliningCompilerAdapter.java:375)
	at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$afterReturning$org_aspectj_ajdt_internal_compiler_CompilerAdapter$2$f9cc9ca0(CompilerAdapter.aj:78)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:421)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1036)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:272)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:185)
	at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112)
	at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
	at org.aspectj.tools.ajc.Main.run(Main.java:371)
	at org.aspectj.tools.ajc.Main.runMain(Main.java:248)
	at org.aspectj.tools.ajc.Main.main(Main.java:84)

1 error