Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8184993 Jar file verification failing with SecurityException: digest missing xxx
  3. JDK-8185136

Release Note: java.util.zip.ZipFile.getEntry() now always returns the ZipEntry instance with a '/' ended entry name for directory entry

    Details

    • Type: Sub-task
    • Status: Closed
    • Priority: P2
    • Resolution: Delivered
    • Affects Version/s: 6u161, 7u151, 8u144
    • Fix Version/s: 8u144
    • Component/s: core-libs

      Backports

        Description

        The `java.util.zip.ZipEntry` API doc specifies "A directory entry is defined to be one whose name ends with a '/'". However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String entryName)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when:

        * the passed in argument `entryName` does not end with a '/', and
        * there is a matching zip directory entry with name `entryName` + '/' in the zip file.

        With this release, the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with '/' for any zip directory entry.

        To revert to the previous behavior, set the system property `jdk.util.zip.ensureTrailingSlash` to "false".

        This change was made in order to fix a regression introduced in JDK 8u141 when verifying signed JARs and has caused some WebStart applications to fail to load. See JDK-8184993 for more information.

          Activity

          mullan Sean Mullan created issue -
          mullan Sean Mullan made changes -
          Field Original Value New Value
          Fix Version/s 8u161 [ 19043 ]
          mullan Sean Mullan made changes -
          Description The `java.util.zip.ZipEntry` API doc specifies *"A directory entry is defined to be one whose name ends with a '/'"*. However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String *entryName*)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when the passed in argument *entryName* does not end with a *'/'* and there is a matching zip directory entry with name *entryName + '/'* in the zip file. With JDK 9 the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with *'/'* for any zip directory entry.
          The `java.util.zip.ZipEntry` API doc specifies *"A directory entry is defined to be one whose name ends with a '/'"*. However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String *entryName*)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when the passed in argument *entryName* does not end with a *'/'* and there is a matching zip directory entry with name *entryName + '/'* in the zip file. With this release, the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with *'/'* for any zip directory entry.

          This change was made in order to fix a regression introduced in JDK 8u141 which caused some WebStart applications to fail to load. See JDK-8184993 for more information.
          mullan Sean Mullan made changes -
          Status New [ 10000 ] Open [ 1 ]
          mullan Sean Mullan made changes -
          Description The `java.util.zip.ZipEntry` API doc specifies *"A directory entry is defined to be one whose name ends with a '/'"*. However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String *entryName*)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when the passed in argument *entryName* does not end with a *'/'* and there is a matching zip directory entry with name *entryName + '/'* in the zip file. With this release, the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with *'/'* for any zip directory entry.

          This change was made in order to fix a regression introduced in JDK 8u141 which caused some WebStart applications to fail to load. See JDK-8184993 for more information.
          The `java.util.zip.ZipEntry` API doc specifies *"A directory entry is defined to be one whose name ends with a '/'"*. However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String *entryName*)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when the passed in argument *entryName* does not end with a *'/'* and there is a matching zip directory entry with name *entryName + '/'* in the zip file. With this release, the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with *'/'* for any zip directory entry.

          To revert to the previous behavior, set the system property `jdk.util.zip.ensureTrailingSlash` to "false".

          This change was made in order to fix a regression introduced in JDK 8u141 which caused some WebStart applications to fail to load. See JDK-8184993 for more information.
          mullan Sean Mullan made changes -
          Fix Version/s 8u144 [ 19212 ]
          Fix Version/s 8u161 [ 19043 ]
          asaha Abhijit Saha made changes -
          Affects Version/s 8u144 [ 19212 ]
          mullan Sean Mullan made changes -
          mullan Sean Mullan made changes -
          Description The `java.util.zip.ZipEntry` API doc specifies *"A directory entry is defined to be one whose name ends with a '/'"*. However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String *entryName*)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when the passed in argument *entryName* does not end with a *'/'* and there is a matching zip directory entry with name *entryName + '/'* in the zip file. With this release, the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with *'/'* for any zip directory entry.

          To revert to the previous behavior, set the system property `jdk.util.zip.ensureTrailingSlash` to "false".

          This change was made in order to fix a regression introduced in JDK 8u141 which caused some WebStart applications to fail to load. See JDK-8184993 for more information.
          The `java.util.zip.ZipEntry` API doc specifies *"A directory entry is defined to be one whose name ends with a '/'"*. However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String *entryName*)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when the passed in argument *entryName* does not end with a *'/'* and there is a matching zip directory entry with name *entryName + '/'* in the zip file. With this release, the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with *'/'* for any zip directory entry.

          To revert to the previous behavior, set the system property `jdk.util.zip.ensureTrailingSlash` to "false".

          This change was made in order to fix a regression introduced in JDK 8u141 when verifying signed JARs and has caused some WebStart applications to fail to load. See JDK-8184993 for more information.
          mullan Sean Mullan made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Delivered [ 17 ]
          mullan Sean Mullan made changes -
          Description The `java.util.zip.ZipEntry` API doc specifies *"A directory entry is defined to be one whose name ends with a '/'"*. However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String *entryName*)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when the passed in argument *entryName* does not end with a *'/'* and there is a matching zip directory entry with name *entryName + '/'* in the zip file. With this release, the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with *'/'* for any zip directory entry.

          To revert to the previous behavior, set the system property `jdk.util.zip.ensureTrailingSlash` to "false".

          This change was made in order to fix a regression introduced in JDK 8u141 when verifying signed JARs and has caused some WebStart applications to fail to load. See JDK-8184993 for more information.
          The `java.util.zip.ZipEntry` API doc specifies "A directory entry is defined to be one whose name ends with a '/'". However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String entryName)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when the passed in argument `entryName` does not end with a '/' and there is a matching zip directory entry with name `entryName` + '/' in the zip file. With this release, the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with '/' for any zip directory entry.

          To revert to the previous behavior, set the system property `jdk.util.zip.ensureTrailingSlash` to "false".

          This change was made in order to fix a regression introduced in JDK 8u141 when verifying signed JARs and has caused some WebStart applications to fail to load. See JDK-8184993 for more information.
          cwayne Clifford Wayne made changes -
          Description The `java.util.zip.ZipEntry` API doc specifies "A directory entry is defined to be one whose name ends with a '/'". However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String entryName)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when the passed in argument `entryName` does not end with a '/' and there is a matching zip directory entry with name `entryName` + '/' in the zip file. With this release, the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with '/' for any zip directory entry.

          To revert to the previous behavior, set the system property `jdk.util.zip.ensureTrailingSlash` to "false".

          This change was made in order to fix a regression introduced in JDK 8u141 when verifying signed JARs and has caused some WebStart applications to fail to load. See JDK-8184993 for more information.
          The `java.util.zip.ZipEntry` API doc specifies "A directory entry is defined to be one whose name ends with a '/'". However, in previous JDK releases `java.util.zip.ZipFile.getEntry(String entryName)` may return a `ZipEntry` instance with an entry name that does not end with '/' for an existing zip directory entry when:

          * the passed in argument `entryName` does not end with a '/', and
          * there is a matching zip directory entry with name `entryName` + '/' in the zip file.

          With this release, the name of the `ZipEntry` instance returned from `java.util.zip.ZipFile.getEntry()` always ends with '/' for any zip directory entry.

          To revert to the previous behavior, set the system property `jdk.util.zip.ensureTrailingSlash` to "false".

          This change was made in order to fix a regression introduced in JDK 8u141 when verifying signed JARs and has caused some WebStart applications to fail to load. See JDK-8184993 for more information.
          cwayne Clifford Wayne made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Verification Verified [ 17000 ]
          cwayne Clifford Wayne made changes -
          Labels RN-Change RN-Change release-note
          rcalnan Roger Calnan made changes -
          rpallath Rajendrakumar Pallath made changes -
          Affects Version/s 7u151 [ 18710 ]
          Affects Version/s 6u161 [ 18711 ]
          cwayne Clifford Wayne made changes -
          Link This issue backported by JDK-8191151 [ JDK-8191151 ]
          cwayne Clifford Wayne made changes -
          Link This issue backported by JDK-8191152 [ JDK-8191152 ]

            People

            • Assignee:
              mullan Sean Mullan
              Reporter:
              mullan Sean Mullan
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: