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

Bug 354682

Summary: Export deployable feature produces corrupted jar (data dependent)
Product: [Eclipse Project] PDE Reporter: Terry Parker <tparker>
Component: BuildAssignee: pde-build-inbox <pde-build-inbox>
Status: RESOLVED WONTFIX QA Contact:
Severity: major    
Priority: P3    
Version: 4.0   
Target Milestone: ---   
Hardware: Other   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
feature.xml file to recreate the bug none

Description Terry Parker CLA 2011-08-12 20:50:49 EDT
Build Identifier: I20110613-1736

Creating a feature patch for the org.eclipse.jdt.core plug-in results in a corrupted jar, but only for certain version strings.

Reproducible: Always

Steps to Reproduce:
Steps:
1) Connect to the Eclipse CVS repository and checkout v_B61 of org.eclipse.jdt.core
2) In the org.eclipse.jdt.core plug-in's MANIFEST.MF file, change the version to "3.7.0.v_B61_gg1"
3) Set up a feature patch project with the attached feature.xml file
4) Use the Export wizard from the feature.xml file to create a deployable feature patch
5) Unzip the resulting org.eclipse.jdt.core plug-in jar, and compare it against the org.eclipse.jdt.core.source_3.7.0.v_B61.jar shipped in Eclipse 3.7.0

Expected:
Classes in the jar files are identical (actually the binary contents differ, but javap indicated it is a reshuffling of the constant pool)

Actual:
Eight inner/anonymous classes are missing:
org.eclipse.jdt.core.internal.codeassist.SelectionEngine$4.class
org.eclipse.jdt.core.internal.codeassist.SelectionEngine$5.class
org.eclipse.jdt.core.internal.codeassist.SelectionEngine$6.class
org.eclipse.jdt.core.internal.codeassist.SelectionEngine$InheritDocVisitor.class
org.eclipse.jdt.core.internal.compiler.flow.LoopingFlowContext$EscapingExceptionCacheSite.class
org.eclipse.jdt.core.internal.compiler.ISourceElementRequestor$ParameterInfo.class
org.eclipse.jdt.core.internal.core.DeltaProcessor$5.class
org.eclipse.jdt.core.internal.core.SourceMapper$LocalVariableElementKey.class

And two appear:
org.eclipse.jdt.core.internal.core.formatter.Scribe$2.class
org.eclipse.jdt.core.internal.core.formatter.Scribe$3.class

In addition, the JDT UI becomes unusable, with modal dialogs popping up about missing methods such as:
java.lang.NoSuchMethodError: org.eclipse.jdt.core.ISourceReference.getNameRange()Lorg/eclipse/jdt/core/ISourceRange;

Most interestingly, everything works as expected if the version in the manifest file for org.eclipse.jdt.core is changed to "3.7.0.v_B61_gg2".  !!!
Comment 1 Terry Parker CLA 2011-08-12 20:56:02 EDT
Created attachment 201451 [details]
feature.xml file to recreate the bug
Comment 2 Lars Vogel CLA 2018-12-03 09:09:03 EST
Currently we are not actively enhancing PDE build anymore. Therefore, I close this bug as WONTFIX. 

Please reopen, if you plan to provide a fix.