Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8187409

Support 307 and 308 http redirects in webstart and plugin

XMLWordPrintable

    • x86
    • linux

      FULL PRODUCT VERSION :
      java version "1.8.0_144"
      Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
      Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Tested both on Linux and Windows desktop OS

      A DESCRIPTION OF THE PROBLEM :
      I am using .jnlp file with element specifiing main JAR file (<jar href="someUrl" main="true" />).
      URL used in that href atribute is one pointing to latest JAR file located in private Maven
      repository (eg. http://maven.repo/search/?g=com.example&a=example-artifact&v=LATEST)

      However, response to that URL is not the JAR file itself but
      HTTP/1.1 307 Temporary Redirect with header Location that points to real JAR file.

      Example response headers:
      HTTP/1.1 307 Temporary Redirect
      ...
      Location: http://maven.repo/com/example/example-artifact/example-artifact-0.1.jar

      Java Web Start seems to fail to follow this redirect and complains
      "java.util.zip.ZipException: zip file is empty".

      Relevant stack trace:

      com.sun.deploy.net.JARSigningException: Could not verify signing in resource: http://maven.repo/search/?g=com.example&a=example-artifact&v=LATEST
      at com.sun.deploy.cache.CacheEntry$7.run(Unknown Source)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.deploy.cache.CacheEntry.writeFileToDisk(Unknown Source)
      at com.sun.deploy.cache.CacheEntry.writeFileToDisk(Unknown Source)
      at com.sun.deploy.cache.Cache.downloadResourceToTempFile(Unknown Source)
      at com.sun.deploy.cache.Cache.downloadResourceToCache(Unknown Source)
      at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
      at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
      at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
      at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
      at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at java.lang.Thread.run(Thread.java:748)

      Unwrapped exception:

      java.util.zip.ZipException: zip file is empty
      at java.util.zip.ZipFile.open(Native Method)
      at java.util.zip.ZipFile.<init>(ZipFile.java:225)
      at java.util.zip.ZipFile.<init>(ZipFile.java:155)
      at java.util.jar.JarFile.<init>(JarFile.java:166)
      at java.util.jar.JarFile.<init>(JarFile.java:130)
      at com.sun.deploy.security.EnhancedJarVerifier.validate(Unknown Source)
      at com.sun.deploy.cache.CacheEntry.processJar(Unknown Source)
      at com.sun.deploy.cache.CacheEntry.access$2700(Unknown Source)
      at com.sun.deploy.cache.CacheEntry$7.run(Unknown Source)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.deploy.cache.CacheEntry.writeFileToDisk(Unknown Source)
      at com.sun.deploy.cache.CacheEntry.writeFileToDisk(Unknown Source)
      at com.sun.deploy.cache.Cache.downloadResourceToTempFile(Unknown Source)
      at com.sun.deploy.cache.Cache.downloadResourceToCache(Unknown Source)
      at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
      at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
      at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
      at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
      at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecu

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Java Web Start should follow redirect and download JAR from location specified in Location header

      REPRODUCIBILITY :
      This bug can be reproduced always.

            herrick Andy Herrick (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: