OPERATING SYSTEM(S):
Windows
FULL JDK VERSION(S):
1.5.0_14
DESCRIPTION:
------------
5.0 Java Web Start cannot handle IPv6 address in URL.
To recreate the problem use a Windows computer (2003 or XP) with IPv6 installed and launch a java Web Start application from a remote IPv6 server using the IPv6 network connection.
The problem appears to be caused by the fact that the Web Start code attempts to cache the jar file, and in doing so parses the URL to produce a suitable folder structure in the cache. However, this parsing produces invalid folder names for IPv6 addresses due to the extra colon characters.
The problem only exists on Windows where colon characters are not permitted in folder names. On Linux there is no issue.
For example, an attempt to load a URL like:
http://[9:0:0:0:0:0:0:d]:9550/test.jar
fails with the following messages/exceptions:
Java(TM) Web Start - Download Error: Unable to launch [title]
"General" Tab:
--------------
An error occurred while launching/running the application.
Title: [title]
Vendor: [vendor]
Category: Download Error
"Exception" Tab:
----------------
JNLPException[category: Download Error : Exception: java.io.IOException: The filename, directory name, or volume label syntax is incorrect. : LaunchDesc: null ]
at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(DownloadProtocol.java:503)
at com.sun.javaws.cache.DownloadProtocol.doDownload(DownloadProtocol.java:693)
at com.sun.javaws.cache.DownloadProtocol.getResource(DownloadProtocol.java:864)
at com.sun.javaws.LaunchDownload.downloadJarFiles(LaunchDownload.java:753)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(LaunchDownload.java:676)
at com.sun.javaws.Launcher.downloadResources(Launcher.java:1091)
at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:424)
at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:254)
at com.sun.javaws.Launcher.run(Launcher.java:201)
at java.lang.Thread.run(Thread.java:810)
Tab Wrapped Exception:
java.io.IOException: The filename, directory name, or volume label syntax is incorrect.
at java.io.File.checkAndCreate(File.java:1380)
at java.io.File.createTempFile(File.java:1469)
at com.sun.javaws.cache.DiskCache.getTempCacheFile(DiskCache.java:289)
at com.sun.javaws.cache.Cache.getTempCacheFile(Cache.java:779)
at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(DownloadProtocol.java:494)
at com.sun.javaws.cache.DownloadProtocol.doDownload(DownloadProtocol.java:693)
at com.sun.javaws.cache.DownloadProtocol.getResource(DownloadProtocol.java:864)
at com.sun.javaws.LaunchDownload.downloadJarFiles(LaunchDownload.java:753)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(LaunchDownload.java:676)
at com.sun.javaws.Launcher.downloadResources(Launcher.java:1091)
at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:424)
at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:254)
at com.sun.javaws.Launcher.run(Launcher.java:201)
at java.lang.Thread.run(Thread.java:810)
Unable to load resource: [URL]
Windows
FULL JDK VERSION(S):
1.5.0_14
DESCRIPTION:
------------
5.0 Java Web Start cannot handle IPv6 address in URL.
To recreate the problem use a Windows computer (2003 or XP) with IPv6 installed and launch a java Web Start application from a remote IPv6 server using the IPv6 network connection.
The problem appears to be caused by the fact that the Web Start code attempts to cache the jar file, and in doing so parses the URL to produce a suitable folder structure in the cache. However, this parsing produces invalid folder names for IPv6 addresses due to the extra colon characters.
The problem only exists on Windows where colon characters are not permitted in folder names. On Linux there is no issue.
For example, an attempt to load a URL like:
http://[9:0:0:0:0:0:0:d]:9550/test.jar
fails with the following messages/exceptions:
Java(TM) Web Start - Download Error: Unable to launch [title]
"General" Tab:
--------------
An error occurred while launching/running the application.
Title: [title]
Vendor: [vendor]
Category: Download Error
"Exception" Tab:
----------------
JNLPException[category: Download Error : Exception: java.io.IOException: The filename, directory name, or volume label syntax is incorrect. : LaunchDesc: null ]
at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(DownloadProtocol.java:503)
at com.sun.javaws.cache.DownloadProtocol.doDownload(DownloadProtocol.java:693)
at com.sun.javaws.cache.DownloadProtocol.getResource(DownloadProtocol.java:864)
at com.sun.javaws.LaunchDownload.downloadJarFiles(LaunchDownload.java:753)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(LaunchDownload.java:676)
at com.sun.javaws.Launcher.downloadResources(Launcher.java:1091)
at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:424)
at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:254)
at com.sun.javaws.Launcher.run(Launcher.java:201)
at java.lang.Thread.run(Thread.java:810)
Tab Wrapped Exception:
java.io.IOException: The filename, directory name, or volume label syntax is incorrect.
at java.io.File.checkAndCreate(File.java:1380)
at java.io.File.createTempFile(File.java:1469)
at com.sun.javaws.cache.DiskCache.getTempCacheFile(DiskCache.java:289)
at com.sun.javaws.cache.Cache.getTempCacheFile(Cache.java:779)
at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(DownloadProtocol.java:494)
at com.sun.javaws.cache.DownloadProtocol.doDownload(DownloadProtocol.java:693)
at com.sun.javaws.cache.DownloadProtocol.getResource(DownloadProtocol.java:864)
at com.sun.javaws.LaunchDownload.downloadJarFiles(LaunchDownload.java:753)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(LaunchDownload.java:676)
at com.sun.javaws.Launcher.downloadResources(Launcher.java:1091)
at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:424)
at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:254)
at com.sun.javaws.Launcher.run(Launcher.java:201)
at java.lang.Thread.run(Thread.java:810)
Unable to load resource: [URL]