File Manager java applet broken with SSL protocol version 3

A customer found this, and we could confirm:

Webmin -> Other -> File Manager

It gives this on 2 different servers with 2 different computes since yesterday's 3.88 release upgraded on our servers a few hours ago:

Java Plug-in 1.6.0_26
Using JRE version 1.6.0_26-b03-384-10M3425 Java HotSpot(TM) 64-Bit Server VM
User home directory = /Users/brunner
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------


load: class FileManager not found.
java.lang.ClassNotFoundException: FileManager
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:250)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:180)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:161)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:687)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3046)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1498)
at java.lang.Thread.run(Thread.java:680)
Exception: java.lang.ClassNotFoundException: FileManager

and this with customer's browser:

NOTE: I have JAVA Java Plug-in 1.6.0_27 installed on client.

The error I get when I try to get into Virtualmin>Webmin modules>Filemanager is Java related:
Error: "The application failed to run"
Details:
Java Plug-in 1.6.0_27
Using JRE version 1.6.0_27-b07 Java HotSpot(TM) Client VM
User home directory = C:\Users\mtesc
----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
o: trigger logging
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
x: clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------


load: class FileManager not found.
java.lang.ClassNotFoundException: FileManager
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: java.lang.ClassNotFoundException: FileManager
Status: 
Closed (fixed)

Comments

I'm very surprised that the Virtualmin upgrade to 3.88 could break the file manager, as it is part of Webmin which wasn't upgraded recently.

Perhaps the cause is elsewhere ..

If you check the log file /var/webmin/miniserv.log when opening the file manager, what lines get logged?

Oops missed your reply. Indeed strange, but reproductible throughout browsers and servers: Did you try it on your installs in 3.88 ?

It could also be an incompatibility of the file.jar java program with Java version 1.6.0 used by the browsers ?

Maybe it's the latest MacOSX Java upgrade ? Version run of Java is 1.6.0_26-b03-384 (both 64 and 32 bits versions give the bug). I don't have an older Java version to compare anymore.

These are the 4 requests that I get into that file when clicking on the file manager (after clearing browser cache):

78.192.59.138 - vminadm [02/Oct/2011:12:56:06 +0200] "GET /file/ HTTP/1.1" 200 2465
78.192.59.138 - vminadm [02/Oct/2011:12:56:06 +0200] "GET /unauthenticated/virtual-server-style.css HTTP/1.1" 200 3699
78.192.59.138 - vminadm [02/Oct/2011:12:56:06 +0200] "GET /unauthenticated/sorttable.js HTTP/1.1" 200 8556
78.192.59.138 - vminadm [02/Oct/2011:12:56:06 +0200] "GET /unauthenticated/reset-fonts-grids-base.css HTTP/1.1" 200 6125

I do not see any errors in there, all reply codes are 200. Also from browser in Firebug i do not see any other accesses than those 4. The file has the Java applet in it starting with:

<applet code=FileManager name=FileManager archive=file.jar width=100% height=100% MAYSCRIPT>

but I do not see file.jar being loaded in firebug, but that might be normal since the java engine gets loaded properly.

In my mac system.log file I see this:

Oct  2 13:28:50 beat [0x0-0x2d02d].org.mozilla.firefox[1410]: Exception in thread "AWT-AppKit"
Oct  2 13:28:50 beat [0x0-0x2d02d].org.mozilla.firefox[1410]: netscape.javascript.JSException: Plugin instance for applet ID 3 was already released
Oct  2 13:28:50 beat [0x0-0x2d02d].org.mozilla.firefox[1410]: at sun.plugin2.main.server.LiveConnectSupport.getInfo(LiveConnectSupport.java:405)
Oct  2 13:28:50 beat [0x0-0x2d02d].org.mozilla.firefox[1410]: at sun.plugin2.main.server.LiveConnectSupport.shutdown(LiveConnectSupport.java:41)
Oct  2 13:28:50 beat [0x0-0x2d02d].org.mozilla.firefox[1410]: at sun.plugin2.main.server.JVMInstance.unregisterApplet(JVMInstance.java:1400)
Oct  2 13:28:50 beat [0x0-0x2d02d].org.mozilla.firefox[1410]: at sun.plugin2.main.server.JVMInstance.recycleAppletID(JVMInstance.java:393)
Oct  2 13:28:50 beat [0x0-0x2d02d].org.mozilla.firefox[1410]: at sun.plugin2.main.server.JVMManager.recycleAppletID(JVMManager.java:349)
Oct  2 13:28:50 beat [0x0-0x2d02d].org.mozilla.firefox[1410]: at sun.plugin2.main.server.MozillaPlugin.stopApplet(MozillaPlugin.java:298)
Oct  2 13:28:50 beat [0x0-0x2d02d].org.mozilla.firefox[1410]: at sun.plugin2.main.server.MozillaPlugin.destroy(MozillaPlugin.java:203)

And when I enable Java debug tracing, logging and applet lifecycle exceptions I see in the java console:

Java Plug-in 1.6.0_26
Using JRE version 1.6.0_26-b03-384-10M3425 Java HotSpot(TM) 64-Bit Server VM
User home directory = /Users/brunner

----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------

security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple.,com.apple.mrj.,com.apple.jdirect.,com.apple.audio.jdirect.,quicktime.internal.,com.sun.medialib.mlib.
security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple.,com.apple.mrj.,com.apple.jdirect.,com.apple.audio.jdirect.,quicktime.internal.,com.sun.medialib.mlib.,com.sun.javaws
security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple.,com.apple.mrj.,com.apple.jdirect.,com.apple.audio.jdirect.,quicktime.internal.,com.sun.medialib.mlib.,com.sun.javaws
security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple.,com.apple.mrj.,com.apple.jdirect.,com.apple.audio.jdirect.,quicktime.internal.,com.sun.medialib.mlib.,com.sun.javaws,com.sun.deploy
security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple.,com.apple.mrj.,com.apple.jdirect.,com.apple.audio.jdirect.,quicktime.internal.,com.sun.medialib.mlib.,com.sun.javaws,com.sun.deploy
security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple.,com.apple.mrj.,com.apple.jdirect.,com.apple.audio.jdirect.,quicktime.internal.,com.sun.medialib.mlib.,com.sun.javaws,com.sun.deploy,com.sun.jnlp
security: property package.definition value null
security: property package.definition new value com.sun.javaws
security: property package.definition value com.sun.javaws
security: property package.definition new value com.sun.javaws,com.sun.deploy
security: property package.definition value com.sun.javaws,com.sun.deploy
security: property package.definition new value com.sun.javaws,com.sun.deploy,com.sun.jnlp
security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple.,com.apple.mrj.,com.apple.jdirect.,com.apple.audio.jdirect.,quicktime.internal.,com.sun.medialib.mlib.,com.sun.javaws,com.sun.deploy,com.sun.jnlp
security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple.,com.apple.mrj.,com.apple.jdirect.,com.apple.audio.jdirect.,quicktime.internal.,com.sun.medialib.mlib.,com.sun.javaws,com.sun.deploy,com.sun.jnlp,org.mozilla.jss
security: property package.definition value com.sun.javaws,com.sun.deploy,com.sun.jnlp
security: property package.definition new value com.sun.javaws,com.sun.deploy,com.sun.jnlp,org.mozilla.jss
basic: Added progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@2de12f6d
basic: Plugin2ClassLoader.addURL parent called for https://ourserverdomain.com:10000/file/file.jar
security: Blacklist revocation check is enabled
security: Trusted libraries list check is enabled
network: Cache entry found [url: https://ourserverdomain.com:10000/file/file.jar, version: null] prevalidated=false/0
network: Connecting https://ourserverdomain.com:10000/file/file.jar with proxy=DIRECT
network: Connecting http://ourserverdomain.com:10000/ with proxy=DIRECT
security: Loading Root CA certificates from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts
security: Loaded Root CA certificates from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts
security: Loading SSL Root CA certificates from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts
security: Loaded SSL Root CA certificates from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Loading Root CA certificates from from keychain
security: Loaded Root CA certificates from from keychain
security: Checking if certificate is in Deployment denied certificate store
network: Connecting https://ourserverdomain.com:10000/file/file.jar with proxy=DIRECT
network: Connecting http://ourserverdomain.com:10000/ with proxy=DIRECT
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if certificate is in Deployment denied certificate store
javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
at sun.plugin.PluginURLJarFileCallBack.downloadJAR(PluginURLJarFileCallBack.java:81)
at sun.plugin.PluginURLJarFileCallBack.access$000(PluginURLJarFileCallBack.java:48)
at sun.plugin.PluginURLJarFileCallBack$2.run(PluginURLJarFileCallBack.java:150)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.PluginURLJarFileCallBack.retrieve(PluginURLJarFileCallBack.java:127)
at sun.net.www.protocol.jar.URLJarFile.retrieve(URLJarFile.java:186)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:50)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:70)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(CachedJarURLConnection.java:201)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(CachedJarURLConnection.java:145)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(CachedJarURLConnection.java:91)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(DeployURLClassPath.java:752)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$800(DeployURLClassPath.java:631)
at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(DeployURLClassPath.java:698)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(DeployURLClassPath.java:690)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(DeployURLClassPath.java:652)
at com.sun.deploy.security.DeployURLClassPath$3.run(DeployURLClassPath.java:400)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.DeployURLClassPath.getLoader(DeployURLClassPath.java:389)
at com.sun.deploy.security.DeployURLClassPath.getLoader(DeployURLClassPath.java:366)
at com.sun.deploy.security.DeployURLClassPath.getResource(DeployURLClassPath.java:230)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Plugin2ClassLoader.java:966)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Plugin2ClassLoader.java:955)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:134)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:250)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:180)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:240)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:180)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:161)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:675)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3046)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1498)
at java.lang.Thread.run(Thread.java:680)
network: Connecting https://ourserverdomain.com:10000/file/file.jar with proxy=DIRECT
network: Connecting http://ourserverdomain.com:10000/ with proxy=DIRECT
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if certificate is in Deployment denied certificate store
network: Connecting https://ourserverdomain.com:10000/file/file.jar with proxy=DIRECT
network: Connecting http://ourserverdomain.com:10000/ with proxy=DIRECT
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if certificate is in Deployment denied certificate store
network: Connecting https://ourserverdomain.com:10000/file/file.jar with proxy=DIRECT
network: Connecting http://ourserverdomain.com:10000/ with proxy=DIRECT
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if certificate is in Deployment denied certificate store
network: Connecting https://ourserverdomain.com:10000/file/file.jar with proxy=DIRECT
network: Connecting http://ourserverdomain.com:10000/ with proxy=DIRECT
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if certificate is in Deployment denied certificate store
javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
at sun.plugin.PluginURLJarFileCallBack.downloadJAR(PluginURLJarFileCallBack.java:81)
at sun.plugin.PluginURLJarFileCallBack.access$000(PluginURLJarFileCallBack.java:48)
at sun.plugin.PluginURLJarFileCallBack$2.run(PluginURLJarFileCallBack.java:150)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.PluginURLJarFileCallBack.retrieve(PluginURLJarFileCallBack.java:127)
at sun.net.www.protocol.jar.URLJarFile.retrieve(URLJarFile.java:186)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:50)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:70)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(CachedJarURLConnection.java:201)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(CachedJarURLConnection.java:145)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(CachedJarURLConnection.java:91)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(DeployURLClassPath.java:752)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$800(DeployURLClassPath.java:631)
at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(DeployURLClassPath.java:698)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(DeployURLClassPath.java:690)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(DeployURLClassPath.java:652)
at com.sun.deploy.security.DeployURLClassPath$3.run(DeployURLClassPath.java:400)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.DeployURLClassPath.getLoader(DeployURLClassPath.java:389)
at com.sun.deploy.security.DeployURLClassPath.getLoader(DeployURLClassPath.java:366)
at com.sun.deploy.security.DeployURLClassPath.getResource(DeployURLClassPath.java:230)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Plugin2ClassLoader.java:966)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Plugin2ClassLoader.java:955)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:134)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:250)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:180)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:161)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:675)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3046)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1498)
at java.lang.Thread.run(Thread.java:680)
network: Connecting https://ourserverdomain.com:10000/file/file.jar with proxy=DIRECT
network: Connecting http://ourserverdomain.com:10000/ with proxy=DIRECT
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if certificate is in Deployment denied certificate store
network: Connecting https://ourserverdomain.com:10000/file/file.jar with proxy=DIRECT
network: Connecting http://ourserverdomain.com:10000/ with proxy=DIRECT
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if certificate is in Deployment denied certificate store
network: Cache entry not found [url: https://ourserverdomain.com:10000/file/, version: null]
network: Cache entry not found [url: https://ourserverdomain.com:10000/file/FileManager.class, version: null]
network: Connecting https://ourserverdomain.com:10000/file/FileManager.class with proxy=DIRECT
network: Connecting http://ourserverdomain.com:10000/ with proxy=DIRECT
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if certificate is in Deployment denied certificate store
network: Cache entry not found [url: https://ourserverdomain.com:10000/file/FileManager.class, version: null]
network: Connecting https://ourserverdomain.com:10000/file/FileManager.class with proxy=DIRECT
network: Connecting http://ourserverdomain.com:10000/ with proxy=DIRECT
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if certificate is in Deployment denied certificate store
basic: load: class FileManager not found.
Java Plug-in 1.6.0_26
Using JRE version 1.6.0_26-b03-384-10M3425 Java HotSpot(TM) 64-Bit Server VM
User home directory = /Users/brunnerload: class FileManager not found.
java.lang.ClassNotFoundException: FileManager
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:250)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:180)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:161)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:687)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3046)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1498)
at java.lang.Thread.run(Thread.java:680)
Exception: java.lang.ClassNotFoundException: FileManager
Ignored exception: java.lang.ClassNotFoundException: FileManager

Also on a Windows 7 PC, also with Java 1.6.0_27 we see same error:

Java Plug-in 1.6.0_27
Using JRE version 1.6.0_27-b07 Java HotSpot(TM) Client VM
User home directory = C:\Users\nickanti
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------


load: class FileManager not found.
java.lang.ClassNotFoundException: FileManager
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: java.lang.ClassNotFoundException: FileManager

Hope that helps!

If needed, we can create you an user account on one of the servers.

An account on your system would be really useful - that way I could see if this is a client or server side issue.

Hi Jamie,

Many Thanks for looking into this. I have created and emailed you an account on a test-system.

To update this ticket, so others who hit this problem can find the solution when searching:

The problem has been found by Jamie as follows:

I see the issue - at Webmin Configuration -> SSL Encryption, you had SSL version 3 enabled only, but Java doesn't support this SSL version.

This isn't really needed, as you have SSLv2 disabled in the ciphers, which is the main one to be worried about..

Thank you very much Jamie.

At least it works again. I have changed the title of the ticket, and letting you decide what you want to do with that Java issue.

I think this is really a Java bug or misfeature, as it cannot use an SSL mode that the browser is happy to accept.

You are better off selecting "Only strong PCI-compliant ciphers" on the SSL Encryption form, as this disables use of SSLv2 while still allowing v3 and TLS.

I think I will actually just remove that "SSL protocol version" field, as I've seen it cause several problems like this..

Automatically closed -- issue fixed for 2 weeks with no activity.