FULL PRODUCT VERSION :
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux dev-desktop 3.13.0-35-generic #62-Ubuntu SMP Fri Aug 15 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
EXTRA RELEVANT SYSTEM CONFIGURATION :
Firefox 32.0 (64 bit)
A DESCRIPTION OF THE PROBLEM :
According to the documentation at http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/jcp/jcp.html the Java Plugin should accept a classpath option specified as a runtime argument from the Control Panel in the form:
-cp=<path> or -classpath=<path>
However when I do provide a custom classpath using either of the above formats, and attempt to execute an applet from the browser I get the following error message from the browser's console output:
JRE 1.7.0.67: Unrecognized option: -cp=/home/wade/java-libs/*
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1) Run Java Control Panel and add classpath referencing directory containing extra jars to the runtime arguments (-cp=/home/wade/java-libs/*)
2) From bash shell, set environment variables: JPI_PLUGIN2_DEBUG=1 and JPI_PLUGIN2_VERBOSE=1 and then run firefox.
3) From browser window hit url page with applet depending on extra jars
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Expected the applet depending on the extra jars to run sucessfully.
ACTUAL -
The applet does not start.
From the bash session running firefox the trace below is printed out:
ERROR MESSAGES/STACK TRACES THAT OCCUR :
NativeLibLoader: trying to load /home/wade/apps/java/jdk1.7.0_67/jre/lib/amd64/libnpjp2.so
(Succeeded)
MozillaPlugin.MozillaPlugin with browser thread ID: 140213775247936
MozillaPlugin.setWindow sun.plugin2.main.server.MozillaPlugin@3f9261de hWndControlWindow = 54536129 caRenderServerName = null
Attempting to start applet
JVMLauncher.start: launcher params:
<-Xbootclasspath/a:/home/wade/apps/java/jdk1.7.0_67/jre/lib/deploy.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/javaws.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/plugin.jar>
<-Djava.class.path=/home/wade/apps/java/jdk1.7.0_67/jre/classes>
<-Dsun.awt.warmup=true>
<--->
<-cp=/home/wade/java-libs/*>
<-->
<sun.plugin2.main.client.PluginMain>
<write_pipe_name=/tmp/.com.sun.deploy.net.socket.6063.5389921142100600898.AF_UNIX>
JVMLauncher.start(): now - user.startApplet(): 50159 us
JVMLauncher.processArg[0]: /home/wade/apps/java/jdk1.7.0_67/jre/bin/java
JVMLauncher.processArg[0]: -D__jvm_launched=574491153728
JVMLauncher.processArg[0]: -D__applet_launched=574491103569
JVMLauncher.processArg[0]: -Xbootclasspath/a:/home/wade/apps/java/jdk1.7.0_67/jre/lib/deploy.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/javaws.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/plugin.jar
JVMLauncher.processArg[0]: -Djava.class.path=/home/wade/apps/java/jdk1.7.0_67/jre/classes
JVMLauncher.processArg[0]: -Dsun.awt.warmup=true
JVMLauncher.processArg[0]: -cp=/home/wade/java-libs/*
JVMLauncher.processArg[0]: sun.plugin2.main.client.PluginMain
JVMLauncher.processArg[0]: write_pipe_name=/tmp/.com.sun.deploy.net.socket.6063.5389921142100600898.AF_UNIX
JVMLauncher.processArgs total len: 515, custArgsMaxLen: 2097043
JVMLauncher.afterStart(): starting JVM process watcher
JVMInstance.start: JVMID original params array:
[0][0]: <-Xbootclasspath/a:/home/wade/apps/java/jdk1.7.0_67/jre/lib/deploy.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/javaws.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/plugin.jar>
[0][1]: <-Djava.class.path=/home/wade/apps/java/jdk1.7.0_67/jre/classes>
[0][2]: <-Dsun.awt.warmup=true>
[3][0]: <-cp=/home/wade/fnb-java-libs/*>
[4][0]: <null>
JRE 1.7.0.67: Unrecognized option: -cp=/home/wade/fnb-java-libs/*
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
java.io.IOException: Never received connection from client side
at sun.plugin2.ipc.unix.DomainSocketNamedPipe.waitForConnectionThread(Unknown Source)
at sun.plugin2.ipc.unix.DomainSocketNamedPipe.write(Unknown Source)
at sun.plugin2.message.transport.NamedPipeTransport$SerializerImpl.flush(Unknown Source)
at sun.plugin2.message.transport.NamedPipeTransport.signalDataWritten(Unknown Source)
at sun.plugin2.message.transport.SerializingTransport.write(Unknown Source)
at sun.plugin2.message.Pipe.send(Unknown Source)
at sun.plugin2.main.server.JVMInstance.sendMessageDirect(Unknown Source)
at sun.plugin2.main.server.JVMInstance.sendMessage(Unknown Source)
at sun.plugin2.main.server.JVMInstance.startImpl(Unknown Source)
at sun.plugin2.main.server.JVMInstance.start(Unknown Source)
at sun.plugin2.main.server.JVMManager.getOrCreateBestJVMInstance(Unknown Source)
at sun.plugin2.main.server.JVMManager.startAppletImpl(Unknown Source)
at sun.plugin2.main.server.JVMManager.startApplet(Unknown Source)
at sun.plugin2.main.server.JVMManager.startApplet(Unknown Source)
at sun.plugin2.main.server.MozillaPlugin.maybeStartApplet(Unknown Source)
at sun.plugin2.main.server.MozillaPlugin.setWindow(Unknown Source)
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at sun.plugin2.message.Queue.waitForMessage(Unknown Source)
at sun.plugin2.message.Pipe$1.run(Unknown Source)
at com.sun.deploy.util.Waiter$1.wait(Unknown Source)
at com.sun.deploy.util.Waiter.runAndWait(Unknown Source)
at sun.plugin2.message.Pipe.receive(Unknown Source)
at sun.plugin2.main.server.JVMInstance$WorkerThread.run(Unknown Source)
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at sun.plugin2.message.Queue.waitForMessage(Unknown Source)
at sun.plugin2.message.Pipe$1.run(Unknown Source)
at com.sun.deploy.util.Waiter$1.wait(Unknown Source)
at com.sun.deploy.util.Waiter.runAndWait(Unknown Source)
at sun.plugin2.message.Pipe.receive(Unknown Source)
at sun.plugin2.main.server.JVMInstance$WorkerThread.run(Unknown Source)
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
Place extra jars in the <jre-home>/lib/ext directory. However this is far from ideal because the extra jars will have to be re-added every time we update the jdk to a newer version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux dev-desktop 3.13.0-35-generic #62-Ubuntu SMP Fri Aug 15 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
EXTRA RELEVANT SYSTEM CONFIGURATION :
Firefox 32.0 (64 bit)
A DESCRIPTION OF THE PROBLEM :
According to the documentation at http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/jcp/jcp.html the Java Plugin should accept a classpath option specified as a runtime argument from the Control Panel in the form:
-cp=<path> or -classpath=<path>
However when I do provide a custom classpath using either of the above formats, and attempt to execute an applet from the browser I get the following error message from the browser's console output:
JRE 1.7.0.67: Unrecognized option: -cp=/home/wade/java-libs/*
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1) Run Java Control Panel and add classpath referencing directory containing extra jars to the runtime arguments (-cp=/home/wade/java-libs/*)
2) From bash shell, set environment variables: JPI_PLUGIN2_DEBUG=1 and JPI_PLUGIN2_VERBOSE=1 and then run firefox.
3) From browser window hit url page with applet depending on extra jars
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Expected the applet depending on the extra jars to run sucessfully.
ACTUAL -
The applet does not start.
From the bash session running firefox the trace below is printed out:
ERROR MESSAGES/STACK TRACES THAT OCCUR :
NativeLibLoader: trying to load /home/wade/apps/java/jdk1.7.0_67/jre/lib/amd64/libnpjp2.so
(Succeeded)
MozillaPlugin.MozillaPlugin with browser thread ID: 140213775247936
MozillaPlugin.setWindow sun.plugin2.main.server.MozillaPlugin@3f9261de hWndControlWindow = 54536129 caRenderServerName = null
Attempting to start applet
JVMLauncher.start: launcher params:
<-Xbootclasspath/a:/home/wade/apps/java/jdk1.7.0_67/jre/lib/deploy.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/javaws.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/plugin.jar>
<-Djava.class.path=/home/wade/apps/java/jdk1.7.0_67/jre/classes>
<-Dsun.awt.warmup=true>
<--->
<-cp=/home/wade/java-libs/*>
<-->
<sun.plugin2.main.client.PluginMain>
<write_pipe_name=/tmp/.com.sun.deploy.net.socket.6063.5389921142100600898.AF_UNIX>
JVMLauncher.start(): now - user.startApplet(): 50159 us
JVMLauncher.processArg[0]: /home/wade/apps/java/jdk1.7.0_67/jre/bin/java
JVMLauncher.processArg[0]: -D__jvm_launched=574491153728
JVMLauncher.processArg[0]: -D__applet_launched=574491103569
JVMLauncher.processArg[0]: -Xbootclasspath/a:/home/wade/apps/java/jdk1.7.0_67/jre/lib/deploy.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/javaws.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/plugin.jar
JVMLauncher.processArg[0]: -Djava.class.path=/home/wade/apps/java/jdk1.7.0_67/jre/classes
JVMLauncher.processArg[0]: -Dsun.awt.warmup=true
JVMLauncher.processArg[0]: -cp=/home/wade/java-libs/*
JVMLauncher.processArg[0]: sun.plugin2.main.client.PluginMain
JVMLauncher.processArg[0]: write_pipe_name=/tmp/.com.sun.deploy.net.socket.6063.5389921142100600898.AF_UNIX
JVMLauncher.processArgs total len: 515, custArgsMaxLen: 2097043
JVMLauncher.afterStart(): starting JVM process watcher
JVMInstance.start: JVMID original params array:
[0][0]: <-Xbootclasspath/a:/home/wade/apps/java/jdk1.7.0_67/jre/lib/deploy.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/javaws.jar:/home/wade/apps/java/jdk1.7.0_67/jre/lib/plugin.jar>
[0][1]: <-Djava.class.path=/home/wade/apps/java/jdk1.7.0_67/jre/classes>
[0][2]: <-Dsun.awt.warmup=true>
[3][0]: <-cp=/home/wade/fnb-java-libs/*>
[4][0]: <null>
JRE 1.7.0.67: Unrecognized option: -cp=/home/wade/fnb-java-libs/*
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
java.io.IOException: Never received connection from client side
at sun.plugin2.ipc.unix.DomainSocketNamedPipe.waitForConnectionThread(Unknown Source)
at sun.plugin2.ipc.unix.DomainSocketNamedPipe.write(Unknown Source)
at sun.plugin2.message.transport.NamedPipeTransport$SerializerImpl.flush(Unknown Source)
at sun.plugin2.message.transport.NamedPipeTransport.signalDataWritten(Unknown Source)
at sun.plugin2.message.transport.SerializingTransport.write(Unknown Source)
at sun.plugin2.message.Pipe.send(Unknown Source)
at sun.plugin2.main.server.JVMInstance.sendMessageDirect(Unknown Source)
at sun.plugin2.main.server.JVMInstance.sendMessage(Unknown Source)
at sun.plugin2.main.server.JVMInstance.startImpl(Unknown Source)
at sun.plugin2.main.server.JVMInstance.start(Unknown Source)
at sun.plugin2.main.server.JVMManager.getOrCreateBestJVMInstance(Unknown Source)
at sun.plugin2.main.server.JVMManager.startAppletImpl(Unknown Source)
at sun.plugin2.main.server.JVMManager.startApplet(Unknown Source)
at sun.plugin2.main.server.JVMManager.startApplet(Unknown Source)
at sun.plugin2.main.server.MozillaPlugin.maybeStartApplet(Unknown Source)
at sun.plugin2.main.server.MozillaPlugin.setWindow(Unknown Source)
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at sun.plugin2.message.Queue.waitForMessage(Unknown Source)
at sun.plugin2.message.Pipe$1.run(Unknown Source)
at com.sun.deploy.util.Waiter$1.wait(Unknown Source)
at com.sun.deploy.util.Waiter.runAndWait(Unknown Source)
at sun.plugin2.message.Pipe.receive(Unknown Source)
at sun.plugin2.main.server.JVMInstance$WorkerThread.run(Unknown Source)
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at sun.plugin2.message.Queue.waitForMessage(Unknown Source)
at sun.plugin2.message.Pipe$1.run(Unknown Source)
at com.sun.deploy.util.Waiter$1.wait(Unknown Source)
at com.sun.deploy.util.Waiter.runAndWait(Unknown Source)
at sun.plugin2.message.Pipe.receive(Unknown Source)
at sun.plugin2.main.server.JVMInstance$WorkerThread.run(Unknown Source)
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
Place extra jars in the <jre-home>/lib/ext directory. However this is far from ideal because the extra jars will have to be re-added every time we update the jdk to a newer version