Hi All
Were currently looking into an issue that one of our customers are experiencing.
The setup is:
1) We have a Java Web Start based product that is deployed using web servers
2) The JNLP file for the Java Web Start product includes a max-heap-size setting, actually we have several JNLP files with different max-heap-size settings to allow the end users some control over this.
3) The JNLP file in question specifies a max-heap-size of 1280M for a 32-bit x86 architecture
4) The JNLP file specifies the .jar files, splash screen, desktop shortcut etc. etc. Works fine for Mac OS X, Windows & Linux
5) Our Java Web Start product is signed using the latests recommendations from Oracle (including the JNLP file)
The test scenario is:
a) The user clicks a link to our 1280M version of the Java Web Start product in IE (just a link to the JNLP file on the web server)
b) The JNLP file is downloaded successfully from the web server
c) IE delegates the JNLP file to "javaws.exe" which in turn launches "jp2launcher.exe" to do the *real* launch of the Java Web Start application
d) "jp2launcher.exe" stalls a few seconds and then exits without leaving any traces (none in the Event Viewer or usual JVM logging directories)
We have investigated this a lot and cannot recreate the issue on our own test machines. What we have found out is that it seems to be related to the requested size of the heap:
1) If we use a version of our Java Web Start product that specifies a max-heap-size of 780M everything seems to work perfectly
2) If we start the Java Web Start application using the "javaws" command line it works perfectly
3) If we start the Java Web Start application using a 64-bit version of Java everything seems to work perfectly
4) Sometimes, just sometimes, the customer is able to launch the 1280M version of the Java Web Start product
There seems to be a kind of cut-off point between 768M and 1280M when launching Java Web Start applications in 32-bit using the jp2launcher.exe tool. We have tried versions of Java that predates the introduction of the jp2launcher.exe and these versions work perfectly.
Unfortunately the source for the jp2launcher.exe tool is proprietary so it's quite difficult to debug...
We have a theory that the issue is related to ASLR (Address Space Layout Randomization). See:
memory - Java 32bit Xmx vs java 64bit Xmx - Stack Overflow
and have tried disabling this using the EMET tool:
http://www.microsoft.com/en-us/download/details.aspx?id=43714
So, have anyone out there seen this issue ? If so, did you succeed in finding a workaround ?