Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-3313

Static logger initializer incorrectly using DomainSocketFactory in ClientSocketFactory, causing ClassNotFoundException on client side.

XMLWordPrintable

    • Low
    • Hide

      None that I could find (other than changing ClientSocketFactory.java and rebuilding as I have done.

      Show
      None that I could find (other than changing ClientSocketFactory.java and rebuilding as I have done.

      The ClientSocketFactory.log static member field is incorrectly initialized using DomainSocketFactory.class as seen in the source of version 1.6 of ClientSocketFactory in 4.0.4 GA

      private static Logger log = Logger.getLogger(DomainSocketFactory.class);

      This is causing the exception mentioned at the end of this description when connecting a jms client to the server using ssl because the jbosssx-client.jar does not include the DomainSocketFactory class.

      The fix for this is to initialize the logger using the ClientSocketFactory class as follows:

      private static Logger log = Logger.getLogger(ClientSocketFactory.class);

      Once I made this change, and rebuilt the jbosssx-client.jar, my client was able to connect properly.

      Caused by: java.lang.NoClassDefFoundError
      at org.jboss.security.ssl.ClientSocketFactory.class$(ClientSocketFactory.java:51)
      at org.jboss.security.ssl.ClientSocketFactory.<clinit>(ClientSocketFactory.java:51)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
      at java.lang.Class.newInstance0(Class.java:308)
      at java.lang.Class.newInstance(Class.java:261)
      at org.jboss.mq.il.uil2.UILServerIL.createConnection(UILServerIL.java:596)
      at org.jboss.mq.il.uil2.UILServerIL.getSocketMgr(UILServerIL.java:558)
      at org.jboss.mq.il.uil2.UILServerIL.authenticate(UILServerIL.java:360)
      at org.jboss.mq.Connection.authenticate(Connection.java:1065)
      ... 11 more
      Caused by: java.lang.ClassNotFoundException: org.jboss.security.ssl.DomainSocketFactory
      at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Class.java:141)
      ... 23 more

            starksm64 Scott Stark (Inactive)
            philsttr_jira Phil Clay (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: