JDK-8066272 : pack200 must support Multi-Release Jars
  • Type: Enhancement
  • Component: core-libs
  • Sub-Component: java.util.jar
  • Affected Version: 8u60
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2014-12-01
  • Updated: 2016-05-27
  • Resolved: 2015-11-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9 b96Fixed
Related Reports
Blocks :  
Description
multi-versioned Jars are being implemented which potentially will contain multiple classes or interfaces with the FullyQualifiedName but implemented differently, all existing under different paths within an archive.

Pack200 does not treat these paths differently, as it was designed to treat the whole jar as an
archive containing unique classes.

The gory details are documented in JDK-7131266, a test case is attached which exhibits the problem.

There are several ways to handle this:
1. treat each version within a jar-file as a segment and concatenate them.
2. move any duplicates to its own segment (needs to be done carefully).

Comments
Under review at: http://cr.openjdk.java.net/~ksrini/8066272
21-10-2015

attached webrev for 8u-dev
18-12-2014

Attached a proto-type of a fix with a regression test for jdk8u-dev/jdk, the fix creates discrete segments for each versioned paths under META-INF
18-12-2014

Attached an easy to use reproducer which takes into account the current proposed META-INF format
16-12-2014