Bug 474770 - ZipException in JarFactoryContainer.getServiceClassnamesFromJar (JarFactoryContainer.java:75)
Summary: ZipException in JarFactoryContainer.getServiceClassnamesFromJar (JarFactoryCo...
Status: VERIFIED NOT_ECLIPSE
Alias: None
Product: JDT
Classification: Eclipse Project
Component: APT (show other bugs)
Version: 4.5   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 4.7 M4   Edit
Assignee: Jay Arthanareeswaran CLA
QA Contact:
URL:
Whiteboard:
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2015-08-12 04:06 EDT by EPP Error Reports CLA
Modified: 2016-12-06 01:04 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description EPP Error Reports CLA 2015-08-12 04:06:59 EDT
The following incident was reported via the automated error reporting:


    code:                   1
    plugin:                 org.eclipse.jdt.apt.core_3.4.0.v20150518-1201
    message:                HIDDEN
    fingerprint:            ae2344ba
    exception class:        java.util.zip.ZipException
    exception message:      HIDDEN
    number of children:     0
    
    java.util.zip.ZipException: HIDDEN
    at java.util.zip.ZipFile.open(null:-2)
    at java.util.zip.ZipFile.<init>(null:-1)
    at java.util.zip.ZipFile.<init>(null:-1)
    at java.util.jar.JarFile.<init>(null:-1)
    at java.util.jar.JarFile.<init>(null:-1)
    at org.eclipse.jdt.apt.core.internal.JarFactoryContainer.getServiceClassnamesFromJar(JarFactoryContainer.java:75)
    at org.eclipse.jdt.apt.core.internal.JarFactoryContainer.loadFactoryNames(JarFactoryContainer.java:53)
    at org.eclipse.jdt.apt.core.internal.util.FactoryContainer.getFactoryNames(FactoryContainer.java:80)
    at org.eclipse.jdt.apt.core.internal.AnnotationProcessorFactoryLoader.loadJava5FactoryClasses(AnnotationProcessorFactoryLoader.java:555)
    at org.eclipse.jdt.apt.core.internal.AnnotationProcessorFactoryLoader.loadFactories(AnnotationProcessorFactoryLoader.java:525)
    at org.eclipse.jdt.apt.core.internal.AnnotationProcessorFactoryLoader.getJava6FactoriesAndAttributesForProject(AnnotationProcessorFactoryLoader.java:421)
    at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:130)
    at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:909)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:434)
    at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:367)
    at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:179)
    at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:304)
    at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:61)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:256)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:175)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:734)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:205)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:245)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:300)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:359)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:382)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
   
  

General Information:

    reported-by:      Emanuele
    anonymous-id:     0ff816bf-64a7-48af-b215-df9e6bf19f22
    eclipse-build-id: 4.5.0.I20150603-2000
    eclipse-product:  org.eclipse.epp.package.java.product
    operating system: Windows8 6.2.0 (x86_64) - win32
    jre-version:      1.8.0_45-b15

The following plug-ins were present on the execution stack (*):
    1. org.eclipse.core.jobs_3.7.0.v20150330-2103
    2. org.eclipse.core.runtime_3.11.0.v20150405-1723
    3. org.eclipse.jdt.apt.core_3.4.0.v20150518-1201
    4. org.eclipse.jdt_3.11.0.v20150603-2000
    5. org.eclipse.jdt.apt.pluggable.core_1.1.0.v20150423-0947
    6. org.eclipse.jdt.core_3.11.0.v20150602-1242

Please note that:
* Messages, stacktraces, and nested status objects may be shortened.
* Bug fields like status, resolution, and whiteboard are sent
  back to reporters.
* The list of present bundles and their respective versions was
  calculated by package naming heuristics. This may or may not reflect reality.

Other Resources:
* Report: https://dev.eclipse.org/recommenders/committers/confess/#/problems/55c750abe4b00acf03bfa604  
* Manual: https://dev.eclipse.org/recommenders/community/confess/#/guide


Thank you for your assistance.
Your friendly error-reports-inbox.
Comment 1 Jay Arthanareeswaran CLA 2015-08-13 00:28:16 EDT
Looks like a case of missing or corrupt JAR file that contains an annotation factory. Can you confirm if any of the previously added annotation factory (Preferences -> Java Compiler -> Annotation Processing -> Factory Path) are missing?
Comment 2 Michael Vorburger CLA 2016-11-02 05:57:08 EDT
Jay, just hit this too, and confirming that this most likely occurred due to a corrupt JAR (e.g. in the Maven ~/.m2/repository; which is -surprisingly- frequent).  What would help here is simply if JDT could include exactly which JAR it stumbled upon when this condition arises... to start with not even a "proper" UI and error marker (that would be the luxury solution..), but even just a catch ZipException in that JarFactoryContainer.getServiceClassnamesFromJar and throw some Exception which includes the file name, that would be a great start here.
Comment 3 Jay Arthanareeswaran CLA 2016-11-08 03:54:39 EST
Added a log to include the file name:

http://git.eclipse.org/c/jdt/eclipse.jdt.core.git/commit/?id=69daf8421e1854a1365152293aad0c7ba5a4c259

Now we need to wait for further reports of which files and what's wrong.
Comment 4 Michael Vorburger CLA 2016-11-08 05:14:26 EST
> Now we need to wait for further reports of which files and what's wrong.

IMHO you won't be able to "do" anything further about this..  this most likely occurred due to a corrupt JAR (e.g. in the Maven ~/.m2/repository; which happens -surprisingly- frequently during download from remote Nexus repositories; in particular when for some reason two processes such as a CLI build and M2E concurrently download Maven artifacts into a local repo; that's known to cause problems - only in Gradle I think they may have done safe concurrent parallel downloads).

But the simple fact of knowing, seeing in the Exception, what JAR is causing this problem, allows people to e.g. wipe that JAR and get it re-downloaded to un-corrupt (as opposed to wiping out an entire ~/.m2/repository).
Comment 5 Jay Arthanareeswaran CLA 2016-11-09 02:38:43 EST
Alright, I will close this. But if the cause is something else (although I consider the possibility to be very less), feel free to reopen this bug.
Comment 6 Sasikanth Bharadwaj CLA 2016-12-06 01:04:58 EST
Verified for 4.7 M4