2 Replies Latest reply on Oct 1, 2015 3:29 PM by shan_ac

    org.hibernate.dialect.DMSQLDialect signer information does not match signer information of other classes in the same package

    shan_ac

      I am doing migration from Jboss 4.x EAP to 5.2.0 EAP. When I deploy application and restart following error is occurred and same set of jar file was working with JBoss 4.x

      I am not able figure out what is the issue.Could you please some one.

       

      This is "org.hibernate.dialect.DMSQLDialect" class file in our own jar contains and JBoss 5.2 EAP has hibernate-core version 3.3.2.GA_CP05.

       

      Caused by: java.lang.SecurityException: class "org.hibernate.dialect.DMSQLDialect"'s signer information does not match signer information of other classes in the same package

        at java.lang.ClassLoader.checkCerts(ClassLoader.java:952)

        at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)

        at java.lang.ClassLoader.defineClass(ClassLoader.java:794)

        at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:48)

        at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:637)

        at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:596)

        at java.security.AccessController.doPrivileged(Native Method)

        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:595)

        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:572)

        at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:135)

        at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)

        at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:455)

        at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:267)

        at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:166)

        • 1. Re: org.hibernate.dialect.DMSQLDialect signer information does not match signer information of other classes in the same package
          jaysensharma

          In JBoss EAP 5.x every JAR shipped by it will be signed. You can check the files (META-INF/JBOSSCOD.SF, META-INF/JBOSSCOD.SF) indicating that those are signed:

           

          Example:

          $JBOSS_HOME/common/lib/hibernate-core.jar/META-INF

           

          In your case as you are using "org.hibernate.dialect.DMSQLDialect" class, Which definitely be extending the "org.hibernate.dialect.Dialect" As the class "org.hibernate.dialect.Dialect" is loaded as part of "$JBOSS_HOME/common/lib/hibernate-core.jar"  with signature (as this JAR is signed) and Your application JAR which is having class "org.hibernate.dialect.DMSQLDialect"  is either not signed or signed with a different key hence you are getting this "signer information" mismatch error.


          So either you will need to make sure that either your application does not see any Hibernate specific classes loaded by JBoss EAP5.


          OR


          (Not Much recommended way, but this should work). Take a backup of the above mentioned hibernate-core.jar which is provided by JBoss. You will need to make sure that the JBoss EAP 5 jars are not signed. So remove the signature information from it :


          zip -d $JBOSS_HOME/common/lib/hibernate-core.jar META-INF/JBOSSCOD.*


          Now try running your application to see if it works.

          • 2. Re: org.hibernate.dialect.DMSQLDialect signer information does not match signer information of other classes in the same package
            shan_ac

            Thanks for your response.

            Its working after removing "META-INF/JBOSSCOD.*" files in following hibernate jar files

            hibernate-validator.jar

            hibernate-commons-annotations.jar

            hibernate-annotations.jar

            hibernate-core.jar

             

            Is it OK to leave these files without signed in production because "org.hibernate.dialect.DMSQLDialect" class in third party jar files which we don't have source code to correct what you suggested to change package structure.