9 Replies Latest reply: May 11, 2012 1:12 PM by 936595 RSS

    Applet failed to load when visited using HTTPs protocol with Java 7

    936595
      We have a java applet on our website which worked for ages. Then Java 7 came out, people installed it. When people with Java 7 visiting our website using HTTPS, the applet failed to load (ClassNotFoundException). The same site and the same applet, when visit using regular HTTP, it works fine.

      People with previous version of Java (1.6.x) can see the applet using either HTTP or HTTPs with no problem.

      Anything we can do on our side to resolve this problem for people with Java 7 and like to stay with HTTPS?

      Googled and didn't see any relevant result. Any pointer would be much appreciated.
        • 1. Re: Applet failed to load when visited using HTTPs protocol with Java 7
          817614
          Any tracing from java console output?
          Can you point to the https site so we could take a look?
          • 2. Re: Applet failed to load when visited using HTTPs protocol with Java 7
            936595
            Thanks for the quick response.
            Not much on the stack trace, did a tread dump below.

            It is an application requires login, please sent and email to desmond.chen@webtechwireless.com and I will sent you the url and login info by email.

            Thanks


            plugin2manager.parentwindowDispose
            Java Plug-in 10.4.0.22
            Using JRE version 1.7.0_04-b22 Java HotSpot(TM) Client VM
            User home directory = C:\Users\dchen
            ----------------------------------------------------
            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>
            ----------------------------------------------------
            Dump thread stack ...
            ----------------------------------------------------
            2012-05-10 17:17:59
            Full thread dump Java HotSpot(TM) Client VM (23.0-b21 mixed mode, sharing):

            "D3D Screen Updater" daemon prio=8 tid=0x04fa1800 nid=0x530 in Object.wait() [0x0a0df000]
            java.lang.Thread.State: TIMED_WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at sun.java2d.d3d.D3DScreenUpdateManager.run(Unknown Source)
                 - locked <0x296c0248> (a java.lang.Object)
                 at java.lang.Thread.run(Unknown Source)

            "ConsoleTraceListener" daemon prio=4 tid=0x04fa0000 nid=0x269c in Object.wait() [0x09c8f000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at java.lang.Object.wait(Object.java:503)
                 at com.sun.deploy.uitoolkit.ui.ConsoleTraceListener$ConsoleWriterThread.run(Unknown Source)
                 - locked <0x296c0c90> (a com.sun.deploy.uitoolkit.ui.ConsoleTraceListener$BoundedStringBuffer)

            "AWT-EventQueue-1" prio=6 tid=0x04fa2000 nid=0x1730 waiting on condition [0x0a6ce000]
            java.lang.Thread.State: RUNNABLE
                 at com.sun.deploy.uitoolkit.ui.ConsoleHelper.dumpAllStacksImpl(Native Method)
                 at com.sun.deploy.uitoolkit.ui.ConsoleHelper.dumpAllStacks(Unknown Source)
                 at com.sun.deploy.uitoolkit.impl.awt.ui.SwingConsoleWindow$2.actionPerformed(Unknown Source)
                 at javax.swing.JComponent$ActionStandin.actionPerformed(Unknown Source)
                 at javax.swing.SwingUtilities.notifyAction(Unknown Source)
                 at javax.swing.JComponent.processKeyBinding(Unknown Source)
                 at javax.swing.KeyboardManager.fireBinding(Unknown Source)
                 at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
                 at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
                 at javax.swing.JComponent.processKeyBindings(Unknown Source)
                 at javax.swing.JComponent.processKeyEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
                 at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
                 at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
                 at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
                 at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
                 at java.awt.Component.dispatchEventImpl(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)

            "TimerQueue" daemon prio=4 tid=0x04f9e000 nid=0x3e0c waiting on condition [0x09f3f000]
            java.lang.Thread.State: WAITING (parking)
                 at sun.misc.Unsafe.park(Native Method)
                 - parking to wait for <0x24620900> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
                 at java.util.concurrent.locks.LockSupport.park(Unknown Source)
                 at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
                 at java.util.concurrent.DelayQueue.take(Unknown Source)
                 at javax.swing.TimerQueue.run(Unknown Source)
                 at java.lang.Thread.run(Unknown Source)

            "AWT-EventQueue-4" prio=4 tid=0x04fa1400 nid=0x255c waiting on condition [0x0945f000]
            java.lang.Thread.State: WAITING (parking)
                 at sun.misc.Unsafe.park(Native Method)
                 - parking to wait for <0x246209e8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
                 at java.util.concurrent.locks.LockSupport.park(Unknown Source)
                 at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
                 at java.awt.EventQueue.getNextEvent(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)

            "Applet 5 LiveConnect Worker Thread" prio=4 tid=0x04f9f400 nid=0x3994 in Object.wait() [0x05d9f000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at java.lang.Object.wait(Object.java:503)
                 at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(Unknown Source)
                 - locked <0x24620ac8> (a java.lang.Object)
                 at java.lang.Thread.run(Unknown Source)

            "AWT-EventQueue-0" prio=6 tid=0x04f9fc00 nid=0x3b2c waiting on condition [0x0608f000]
            java.lang.Thread.State: WAITING (parking)
                 at sun.misc.Unsafe.park(Native Method)
                 - parking to wait for <0x2979ab70> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
                 at java.util.concurrent.locks.LockSupport.park(Unknown Source)
                 at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
                 at java.awt.EventQueue.getNextEvent(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)

            "AWT-Shutdown" prio=6 tid=0x04f9e800 nid=0x244c in Object.wait() [0x0669f000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at java.lang.Object.wait(Object.java:503)
                 at sun.awt.AWTAutoShutdown.run(Unknown Source)
                 - locked <0x2979acd8> (a java.lang.Object)
                 at java.lang.Thread.run(Unknown Source)

            "TimerQueue" daemon prio=6 tid=0x04fa0c00 nid=0x3914 waiting on condition [0x0a65f000]
            java.lang.Thread.State: WAITING (parking)
                 at sun.misc.Unsafe.park(Native Method)
                 - parking to wait for <0x29c27340> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
                 at java.util.concurrent.locks.LockSupport.park(Unknown Source)
                 at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
                 at java.util.concurrent.DelayQueue.take(Unknown Source)
                 at javax.swing.TimerQueue.run(Unknown Source)
                 at java.lang.Thread.run(Unknown Source)

            "JVM[id=2]-Heartbeat" daemon prio=6 tid=0x04f9ec00 nid=0x3c98 in Object.wait() [0x0687f000]
            java.lang.Thread.State: TIMED_WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at sun.plugin2.main.server.HeartbeatThread.run(Unknown Source)
                 - locked <0x2979a7a0> (a sun.plugin2.main.client.PluginMain$Heartbeat)

            "Browser Side Object Cleanup Thread" prio=6 tid=0x04f9d000 nid=0x3ce4 in Object.wait() [0x0710f000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 - waiting on <0x2979a958> (a java.lang.ref.ReferenceQueue$Lock)
                 at java.lang.ref.ReferenceQueue.remove(Unknown Source)
                 - locked <0x2979a958> (a java.lang.ref.ReferenceQueue$Lock)
                 at java.lang.ref.ReferenceQueue.remove(Unknown Source)
                 at sun.plugin2.main.client.LiveConnectSupport$BrowserSideObjectCleanupThread.run(Unknown Source)

            "CacheCleanUpThread" daemon prio=6 tid=0x04f9dc00 nid=0x2500 in Object.wait() [0x0655f000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 - waiting on <0x2979a978> (a com.sun.deploy.cache.CleanupThread)
                 at java.lang.Object.wait(Object.java:503)
                 at com.sun.deploy.cache.CleanupThread.run(Unknown Source)
                 - locked <0x2979a978> (a com.sun.deploy.cache.CleanupThread)

            "CacheMemoryCleanUpThread" daemon prio=6 tid=0x04f9d400 nid=0x1ac4 in Object.wait() [0x0611f000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 - waiting on <0x2979aa68> (a java.lang.ref.ReferenceQueue$Lock)
                 at java.lang.ref.ReferenceQueue.remove(Unknown Source)
                 - locked <0x2979aa68> (a java.lang.ref.ReferenceQueue$Lock)
                 at java.lang.ref.ReferenceQueue.remove(Unknown Source)
                 at com.sun.deploy.cache.MemoryCache$LoadedResourceCleanupThread.run(Unknown Source)

            "SysExecutionTheadCreator" daemon prio=6 tid=0x04f9c800 nid=0x3ff4 in Object.wait() [0x0660f000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at java.lang.Object.wait(Object.java:503)
                 at sun.plugin.util.PluginSysUtil$SysExecutionThreadCreator.run(Unknown Source)
                 - locked <0x2979aa88> (a sun.plugin.util.PluginSysUtil$SysExecutionThreadCreator)

            "AWT-Windows" daemon prio=6 tid=0x04f8f000 nid=0x3480 runnable [0x026af000]
            java.lang.Thread.State: RUNNABLE
                 at sun.awt.windows.WToolkit.eventLoop(Native Method)
                 at sun.awt.windows.WToolkit.run(Unknown Source)

            "Java2D Disposer" daemon prio=10 tid=0x04f8d000 nid=0x1920 in Object.wait() [0x064ff000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at java.lang.ref.ReferenceQueue.remove(Unknown Source)
                 - locked <0x2979ad68> (a java.lang.ref.ReferenceQueue$Lock)
                 at java.lang.ref.ReferenceQueue.remove(Unknown Source)
                 at sun.java2d.Disposer.run(Unknown Source)
                 at java.lang.Thread.run(Unknown Source)

            "Java Plug-In Pipe Worker Thread (Client-Side)" daemon prio=6 tid=0x04f8a000 nid=0x580 runnable [0x0617f000]
            java.lang.Thread.State: RUNNABLE
                 at sun.plugin2.os.windows.Windows.ReadFile0(Native Method)
                 at sun.plugin2.os.windows.Windows.ReadFile(Unknown Source)
                 at sun.plugin2.ipc.windows.WindowsNamedPipe.read(Unknown Source)
                 at sun.plugin2.message.transport.NamedPipeTransport$SerializerImpl.read(Unknown Source)
                 at sun.plugin2.message.transport.NamedPipeTransport$SerializerImpl.readByte(Unknown Source)
                 at sun.plugin2.message.AbstractSerializer.readInt(Unknown Source)
                 at sun.plugin2.message.transport.SerializingTransport.read(Unknown Source)
                 at sun.plugin2.message.Pipe$WorkerThread.run(Unknown Source)

            "Timer-0" prio=6 tid=0x04f3d800 nid=0x2c38 in Object.wait() [0x0521f000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 - waiting on <0x2979b0a8> (a java.util.TaskQueue)
                 at java.lang.Object.wait(Object.java:503)
                 at java.util.TimerThread.mainLoop(Unknown Source)
                 - locked <0x2979b0a8> (a java.util.TaskQueue)
                 at java.util.TimerThread.run(Unknown Source)

            "traceMsgQueueThread" daemon prio=6 tid=0x04f19c00 nid=0x3b50 in Object.wait() [0x054cf000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at java.lang.Object.wait(Object.java:503)
                 at com.sun.deploy.trace.Trace$TraceMsgQueueChecker.run(Unknown Source)
                 - locked <0x298209e0> (a java.util.ArrayList)
                 at java.lang.Thread.run(Unknown Source)

            "Service Thread" daemon prio=6 tid=0x04e80c00 nid=0x2930 runnable [0x00000000]
            java.lang.Thread.State: RUNNABLE

            "C1 CompilerThread0" daemon prio=10 tid=0x04e7c400 nid=0x2648 waiting on condition [0x00000000]
            java.lang.Thread.State: RUNNABLE

            "Attach Listener" daemon prio=10 tid=0x04e7b000 nid=0x1b5c runnable [0x00000000]
            java.lang.Thread.State: RUNNABLE

            "Signal Dispatcher" daemon prio=10 tid=0x04e77c00 nid=0x1bd0 runnable [0x00000000]
            java.lang.Thread.State: RUNNABLE

            "Finalizer" daemon prio=8 tid=0x022e1000 nid=0x3d00 in Object.wait() [0x04c5f000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at java.lang.ref.ReferenceQueue.remove(Unknown Source)
                 - locked <0x2979b330> (a java.lang.ref.ReferenceQueue$Lock)
                 at java.lang.ref.ReferenceQueue.remove(Unknown Source)
                 at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

            "Reference Handler" daemon prio=10 tid=0x022df800 nid=0x3644 in Object.wait() [0x04bdf000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at java.lang.Object.wait(Object.java:503)
                 at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
                 - locked <0x2979a0c8> (a java.lang.ref.Reference$Lock)

            "main" prio=6 tid=0x0036d800 nid=0x2f40 in Object.wait() [0x00a2f000]
            java.lang.Thread.State: WAITING (on object monitor)
                 at java.lang.Object.wait(Native Method)
                 at sun.plugin2.message.Queue.waitForMessage(Unknown Source)
                 - locked <0x2979b3b8> (a sun.plugin2.message.Queue)
                 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.client.PluginMain.mainLoop(Unknown Source)
                 at sun.plugin2.main.client.PluginMain.run(Unknown Source)
                 at sun.plugin2.main.client.PluginMain.main(Unknown Source)

            "VM Thread" prio=10 tid=0x022de400 nid=0x3cc0 runnable

            "VM Periodic Task Thread" prio=10 tid=0x04ea9000 nid=0x3fd4 waiting on condition

            .main.client.PluginMain.run(Unknown Source)
                 at sun.plugin2.main.client.PluginMain.main(Unknown Source)

            "VM Thread" prio=10 tid=0x022de400 nid=0x3cc0 runnable

            "VM Periodic Task Thread" prio=10 tid=0x04ea9000 nid=0x3fd4 waiting on condition


            ----------------------------------------------------
            Done.
            • 3. Re: Applet failed to load when visited using HTTPs protocol with Java 7
              817264
              Stack trace does not help much.

              Please enable trace with all details (see instruction here: http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-Desktop/html/plugin.html#gcexdf)
              • 4. Re: Applet failed to load when visited using HTTPs protocol with Java 7
                936595
                Does this help?
                security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.
                security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws
                security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws
                security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,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.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,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.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,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.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,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.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,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
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/sizzle/, version: null]
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/sizzle/default.class, version: null]
                network: Connecting https://inst.webtechwireless.com/wtw/jsp/sizzle/default.class with proxy=DIRECT
                network: Connecting http://inst.webtechwireless.com:443/ with proxy=DIRECT
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/sizzle/default.class, version: null]
                network: Connecting https://inst.webtechwireless.com/wtw/jsp/sizzle/default.class with proxy=DIRECT
                network: Connecting http://inst.webtechwireless.com:443/ with proxy=DIRECT
                basic: Added progress listener: sun.plugin.util.ProgressMonitorAdapter@179a727
                basic: Plugin2ClassLoader.addURL parent called for https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar, version: null]
                network: Connecting https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar with proxy=DIRECT
                network: Connecting http://inst.webtechwireless.com:443/ with proxy=DIRECT
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar, version: null]
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar, version: null]
                network: Connecting https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar with proxy=DIRECT
                network: Connecting http://inst.webtechwireless.com:443/ with proxy=DIRECT
                network: Connecting https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar with proxy=DIRECT
                network: Connecting http://inst.webtechwireless.com:443/ with proxy=DIRECT
                javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
                     at sun.security.ssl.ClientHandshaker.handshakeAlert(Unknown Source)
                     at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
                     at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
                     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
                     at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
                     at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
                     at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
                     at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
                     at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
                     at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
                     at com.sun.deploy.net.DownloadEngine.getJarFileWithoutCache(Unknown Source)
                     at com.sun.deploy.net.DownloadEngine.downloadJarFileWithoutCache(Unknown Source)
                     at sun.plugin.PluginURLJarFileCallBack$1.run(Unknown Source)
                     at java.security.AccessController.doPrivileged(Native Method)
                     at sun.plugin.PluginURLJarFileCallBack.retrieve(Unknown Source)
                     at sun.net.www.protocol.jar.URLJarFile.retrieve(Unknown Source)
                     at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source)
                     at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source)
                     at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)
                     at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown Source)
                     at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(Unknown Source)
                     at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$1000(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)
                     at java.security.AccessController.doPrivileged(Native Method)
                     at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)
                     at java.security.AccessController.doPrivileged(Native Method)
                     at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
                     at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
                     at java.security.AccessController.doPrivileged(Native Method)
                     at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
                     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.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.initAppletAdapter(Unknown Source)
                     at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
                     at java.lang.Thread.run(Unknown Source)
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar, version: null]
                network: Connecting https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar with proxy=DIRECT
                network: Connecting http://inst.webtechwireless.com:443/ with proxy=DIRECT
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar, version: null]
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar, version: null]
                network: Connecting https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar with proxy=DIRECT
                network: Connecting http://inst.webtechwireless.com:443/ with proxy=DIRECT
                network: Connecting https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar with proxy=DIRECT
                network: Connecting http://inst.webtechwireless.com:443/ with proxy=DIRECT
                javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
                     at sun.security.ssl.ClientHandshaker.handshakeAlert(Unknown Source)
                     at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
                     at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
                     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
                     at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
                     at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
                     at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
                     at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
                     at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
                     at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
                     at com.sun.deploy.net.DownloadEngine.getJarFileWithoutCache(Unknown Source)
                     at com.sun.deploy.net.DownloadEngine.downloadJarFileWithoutCache(Unknown Source)
                     at sun.plugin.PluginURLJarFileCallBack$1.run(Unknown Source)
                     at java.security.AccessController.doPrivileged(Native Method)
                     at sun.plugin.PluginURLJarFileCallBack.retrieve(Unknown Source)
                     at sun.net.www.protocol.jar.URLJarFile.retrieve(Unknown Source)
                     at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source)
                     at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source)
                     at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)
                     at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown Source)
                     at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(Unknown Source)
                     at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$1000(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)
                     at java.security.AccessController.doPrivileged(Native Method)
                     at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)
                     at java.security.AccessController.doPrivileged(Native Method)
                     at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
                     at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
                     at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
                     at java.security.AccessController.doPrivileged(Native Method)
                     at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
                     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.initAppletAdapter(Unknown Source)
                     at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
                     at java.lang.Thread.run(Unknown Source)
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/sizzle/DlogGrapher.class, version: null]
                network: Connecting https://inst.webtechwireless.com/wtw/jsp/sizzle/DlogGrapher.class with proxy=DIRECT
                network: Connecting http://inst.webtechwireless.com:443/ with proxy=DIRECT
                network: Cache entry not found [url: https://inst.webtechwireless.com/wtw/jsp/sizzle/DlogGrapher/class.class, version: null]
                network: Connecting https://inst.webtechwireless.com/wtw/jsp/sizzle/DlogGrapher/class.class with proxy=DIRECT
                network: Connecting http://inst.webtechwireless.com:443/ with proxy=DIRECT
                java.lang.ClassNotFoundException: DlogGrapher.class
                     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.initAppletAdapter(Unknown Source)
                     at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
                     at java.lang.Thread.run(Unknown Source)
                basic: load: class DlogGrapher.class not found.
                java.lang.ClassNotFoundException: DlogGrapher.class
                     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.initAppletAdapter(Unknown Source)
                     at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
                     at java.lang.Thread.run(Unknown Source)
                Ignored exception: java.lang.ClassNotFoundException: DlogGrapher.class
                basic: Dialog type is not candidate for embedding
                basic: Removed progress listener: sun.plugin.util.ProgressMonitorAdapter@179a727
                security: Reset deny session certificate store
                Java Plug-in 10.4.0.22
                Using JRE version 1.7.0_04-b22 Java HotSpot(TM) Client VM
                User home directory = C:\Users\dchen
                ----------------------------------------------------
                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>
                ----------------------------------------------------

                Edited by: 933592 on May 10, 2012 5:29 PM
                • 5. Re: Applet failed to load when visited using HTTPs protocol with Java 7
                  936595
                  I think that we are getting closer:

                  The applet was looking to load from here, please not the "," at the end
                  https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar,

                  The URL would have been valid without the ,

                  here is the Applet tag on the html page
                  <script>
                       document.write('<applet id="DLogGraph" width="820" height="300" align="baseline" archive="../applet/DLogApplet.jar" code="DlogGrapher.class">');
                  </script>
                  • 6. Re: Applet failed to load when visited using HTTPs protocol with Java 7
                    936595
                    hmm not quiet as simple
                    It does try to access
                    https://inst.webtechwireless.com/wtw/jsp/applet/DLogApplet.jar... but some how fail to load the class, which is there, under HTTPS.

                    The applet works except with HTTPS using Java7

                    Thanks
                    • 7. Re: Applet failed to load when visited using HTTPs protocol with Java 7
                      817264
                      yes, trace is useful.

                      I think this is the key:
                      javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
                      at sun.security.ssl.ClientHandshaker.handshakeAlert(Unknown Source)
                      I think this is sideffect of "Server name indication (SNI) for JSSE client"
                      http://docs.oracle.com/javase/7/docs/webnotes/adoptionGuide/index.html#security

                      See
                      http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7127374
                      for details and workarounds (best is to fix server setup i think).
                      • 8. Re: Applet failed to load when visited using HTTPs protocol with Java 7
                        936595
                        igor wrote:
                        yes, trace is useful.

                        I think this is the key:
                        javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
                        at sun.security.ssl.ClientHandshaker.handshakeAlert(Unknown Source)
                        I think this is sideffect of "Server name indication (SNI) for JSSE client"
                        http://docs.oracle.com/javase/7/docs/webnotes/adoptionGuide/index.html#security

                        See
                        http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7127374
                        for details and workarounds (best is to fix server setup i think).
                        Still need help!

                        The bug report suggested 3 work-arounds:

                        a) jsse.enableSNIExtension=false
                        Can't do this in applet, the loading false before it reaches the init() method.
                        b) use SSL3 protocol only (warning, security problem)
                        Not sure if we can't control this in applet. Is it suggest to control this on the server?
                        c) use s=factory.createSocket(); s.connect(host,port); instead of factory=createSocket(host,port);
                        Same as a) can't do this in applet.

                        You mentioned "better to fix server setup", any pointer to this?
                        Many thanks.
                        • 9. Re: Applet failed to load when visited using HTTPs protocol with Java 7
                          936595
                          OK, solved the problem

                          The host name in the https response must be set (and of course must be set correctly)

                          In our case, we use Apache, in the conf/extra/httpd-ssl.conf file
                          the ServerName value must be set to value the server was referred to. We left it blank and applet runs before java 7 was OK with it.

                          <VirtualHost default:443>

                          # General setup for the virtual host
                          DocumentRoot "/opt/apache/2.2.21/htdocs"
                          ServerName inst.webtechwireless.com:443