Skip to content

JRuby 1.7.5 doesn't compile valid class files #1136

@rtyler

Description

@rtyler

I'm hoping this isn't a warbler-based bug, but given the stack trace, I'm assuming it has more to do with the JRuby 1.7.5 compiler.

Under 1.7.4 bundle exec warble jar:clean gemjar compiled runnable jar will create a properly runnable jar file.

Under 1.7.5, a jar-file will be created, but upon running it, the following exception will be raised:

-> % java -jar smb-full.jar -T
Exception in thread "main" java.lang.ClassFormatError: Extra bytes at the end of class file JarMain
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        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:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

Looks like this issue might be the underlying reason for the exception.

FWIW, using:

-> % java -version
java version "1.7.0_40"
OpenJDK Runtime Environment (IcedTea 2.4.1) (suse-8.18.1-x86_64)
OpenJDK 64-Bit Server VM (build 24.0-b50, mixed mode)
``

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions