Birt 4.3.1a - invalid jar file signature

Hi,

 

there's a weird observation to report.

 

After upgrading Birt 4.3.1 runtime to 4.3.1a (available through Maven release repository), Java program will no longer execute due to java security exception, see below. Switching to 4.3.1 problem disappears, switching to 4.3.1a problem surfaces again.

Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes    at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:240)    at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:193)    at java.util.jar.JarVerifier.processEntry(JarVerifier.java:305)    at java.util.jar.JarVerifier.update(JarVerifier.java:216)    at java.util.jar.JarFile.initializeVerifier(JarFile.java:345)    at java.util.jar.JarFile.getInputStream(JarFile.java:412)    at sun.misc.JarIndex.getJarIndex(JarIndex.java:137)    at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:674)    at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:666)    at java.security.AccessController.doPrivileged(Native Method)    at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:665)    at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:638)    at sun.misc.URLClassPath$3.run(URLClassPath.java:366)    at sun.misc.URLClassPath$3.run(URLClassPath.java:356)    at java.security.AccessController.doPrivileged(Native Method)    at sun.misc.URLClassPath.getLoader(URLClassPath.java:355)    at sun.misc.URLClassPath.getLoader(URLClassPath.java:332)    at sun.misc.URLClassPath.getResource(URLClassPath.java:198)    at java.net.URLClassLoader$1.run(URLClassLoader.java:358)    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)    at java.security.AccessController.doPrivileged(Native Method)    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

This is with Java 1.7.0_45 x64 on Windows. Unfortunatelly it is not listed which JAR file caused the exception.

 

Anyone else experiencing this? Seems to be a packaging related problem.

 

Cheers,

Tomas

Comments

  • And that's the entire error stack?

    Regards,

    Michael Williams

    eSignLive Evangelism & Community Manager | eSignLive by VASCO
     
    Find me on:
    Twitter
    Facebook
    Blog

    LinkedIn

    eSignLive Developer Community
     
    Email me:
    Google: [email protected]

  • Hi,

     

    yes that's the entire error stack.

     

    I've managed to nail the problem down.

     

    4.3.1 - OK

    C:Program FilesJavajdk7bin>jarsigner -verify "org.eclipse.birt.runtime-4.3.1.jar"jar verified.

    4.3.1a - Problem

    C:Program FilesJavajdk7bin>jarsigner -verify "org.eclipse.birt.runtime-4.3.1a.jar"jarsigner: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

    Tomas

  • Glad you found what was going on.

    Regards,

    Michael Williams

    eSignLive Evangelism & Community Manager | eSignLive by VASCO
     
    Find me on:
    Twitter
    Facebook
    Blog

    LinkedIn

    eSignLive Developer Community
     
    Email me:
    Google: [email protected]

  • Hi mwilliams, do you ever read more than the first line of the posts?

    Hi Tomas,

    I'm having the same problem when i try to run some java code that depends on the 4.3.1a jars in eclipse, however when i run the same in maven they run fine... maybe there's a way to tell java to ignore this error

     

     

     

  • grathergrather Junior Member

    I had the very same issue when running the BIRT 4.6 under Wildfly.


     


    Turns out I was using an ear file.


    My Birt jars were in lib directory under the ear. not in the war file.


     


    I needed to tell jboss where this file was.


     


    In my jboss-deplyment-structure.xml


    I add this line


    <resources>
    <resource-root path="lib/org.eclipse.birt.runtime-4.6.0-20160607.jar" use-physical-code-source="true"/>
    </resources>


     


    this tells jboss where the file is instead of looking in my WAR/WEB-INF/lib now looking in EAR/lib  


     


    BIRT 4.6 then will start.


     


    Gary Rather


Sign In or Register to comment.