JDK-8000290 : Web Start fails to find native library jar when offline
  • Type: Backport
  • Backport of: JDK-7194879
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 7
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2012-10-01
  • Updated: 2012-11-19
  • Resolved: 2012-10-02
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 7 JDK 8
7u10 b12Fixed 8Fixed
Description
FULL PRODUCT VERSION :
java version "1.7.0_06"

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]
  Bug occurs on all OSs tested so far: Win7, WinXP

A DESCRIPTION OF THE PROBLEM :
Application works as expected when "online" i.e. with an internet connection, but fails when "offline" i.e. with no internet connection:

JNLPClassLoader: Finding library jspWin.dll
java.net.ConnectException: Connection timed out: connect
	at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
        ...

java.lang.UnsatisfiedLinkError: no jspWin in java.library.path: Check that native library jspWin is in proper directory


This is a regression - it works on Java6, Java5, Java4.

REGRESSION.  Last worked in version 6u31

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Get http://driveweb.com/tech/ap/v3/dw.jnlp
After launch, etc., choose menu item 'Directory->Discover on Serial Port->PL-series DC drive'

When online, it works, when offline it fails.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
A dialog appears which would allow connection via a serial port
ACTUAL -
An exception occurs (and is reported via a dialog).

ERROR MESSAGES/STACK TRACES THAT OCCUR :
Here is a log from WinXP:


Serialio Library: version 10.0.4: build 9212
Copyright (c) 1996-2009 Serialio.com, All Rights Reserved.
os.name="Windows XP"  os.arch="x86"
JNLPClassLoader: Finding library jspWin.dll
java.net.ConnectException: Connection timed out: connect
	at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at sun.net.NetworkClient.doConnect(Unknown Source)
	at sun.net.www.http.HttpClient.openServer(Unknown Source)
	at sun.net.www.http.HttpClient.openServer(Unknown Source)
	at sun.net.www.http.HttpClient.<init>(Unknown Source)
	at sun.net.www.http.HttpClient.New(Unknown Source)
	at sun.net.www.http.HttpClient.New(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.net.URL.openStream(Unknown Source)
	at com.bardac.dw1.tools.Toolbox$7.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
java.lang.UnsatisfiedLinkError: no jspWin in java.library.path: Check that native library jspWin is in proper directory
java.lang.Exception: Unable to find library file; ensure that the working directory contains jspWin.dll or libjspMacOSX.jnilib
	at com.bardac.dw1.tools.model.SerialPort.a(Unknown Source)
	at com.bardac.dw1.tools.model.SerialPort.access$3400(Unknown Source)
	at com.bardac.dw1.tools.model.SerialPort$l.try(Unknown Source)
	at com.bardac.dw1.tools.model.SerialPort$l.access$1600(Unknown Source)
	at com.bardac.dw1.tools.model.SerialPort.a(Unknown Source)
	at com.bardac.dw1.tools.ui.DMenuItem$dq.do(Unknown Source)
	at com.bardac.dw1.tools.ui.DMenuItem.actionPerformed(Unknown Source)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.AbstractButton.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Aug 28, 2012 3:48:54 PM com.bardac.dw1.tools.Toolbox if
INFO: Unable to find library file; ensure that the working directory contains jspWin.dll or libjspMacOSX.jnilib


REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
Remove Java 7 and re-install java 6

Comments
Verified. Test case passed. functional works without exception with disable network.
30-10-2012