Fwd: GIJ fails in checking three test classes

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Fwd: GIJ fails in checking three test classes

Yuting Chen
Dear all,

Not very sure that I can still get some responses here, or some bugs
can be quickly fixed if gij will continue.

I recently tested gij (GNU libgcj) version 5.1.0, and it seems that
this JVM still conflicts with the other JVMs (e.g., HotSpot/IBM J9) in
some cases. Some behaviors are not consistent with the existing JVM
specifications. Here we report three simple format errors that gij may
miss catching (i.e., HotSpot can throw an error while gij cannot). The
classes cannot be attached, and thus I just decompile the classes.

(1) Illegal class modifiers in class M1435964238: 0x201
public interface M1435964238 extends java.util.Set
  minor version: 0
  major version: 46
  flags: ACC_PUBLIC, ACC_INTERFACE
Constant pool:
   #1 = Class              #11            // M1435964238
   #2 = Utf8               java/lang/Object
   #3 = Utf8               SourceFile
   #4 = Utf8               main
   #5 = Utf8               java/util/Set
   #6 = Utf8               Code
   #7 = Utf8               getFaultRole
   #8 = Utf8               ([Ljava/lang/String;)V
   #9 = Utf8               Jasmin
  #10 = Class              #5             // java/util/Set
  #11 = Utf8               M1435964238
  #12 = Utf8               ()Ljava/lang/String;
  #13 = Class              #2             // java/lang/Object
{
  public abstract java.lang.String getFaultRole();
    descriptor: ()Ljava/lang/String;
    flags: ACC_PUBLIC, ACC_ABSTRACT

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: ACC_PUBLIC, ACC_STATIC
    Code:
      stack=0, locals=1, args_size=1
         0: return
}

(2) Method <init> in class M1435965065 has illegal modifiers: 0x41
public class M1435965065
  minor version: 0
  major version: 51
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
   #1 = Methodref          #13.#7         // java/lang/Object."<init>":()V
   #2 = Utf8               java/lang/Object
   #3 = Utf8               SourceFile
   #4 = Utf8               <init>
   #5 = Utf8               main
   #6 = Utf8               M1435965065
   #7 = NameAndType        #4:#11         // "<init>":()V
   #8 = Utf8               Code
   #9 = Class              #6             // M1435965065
  #10 = Utf8               ([Ljava/lang/String;)V
  #11 = Utf8               ()V
  #12 = Utf8               Jasmin
  #13 = Class              #2             // java/lang/Object
{
  public M1435965065();
    descriptor: ()V
    flags: ACC_PUBLIC, ACC_BRIDGE
    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: invokespecial #1                  // Method
java/lang/Object."<init>":()V
         4: return
}

(3) Duplicate field name&signature in class file M1436185437
public final class M1436185437 extends javax.print.attribute.URISyntax
implements javax.print.attribute.PrintServiceAttribute
  minor version: 0
  major version: 46
  flags: ACC_PUBLIC, ACC_FINAL, ACC_SUPER
Constant pool:
   #1 = NameAndType        #29:#33        // out:Ljava/io/PrintStream;
   #2 = Utf8               ([Ljava/lang/String;)V
   #3 = Utf8               Lcom/sun/corba/se/spi/activation/Locator;
   #4 = Class              #23            // java/io/PrintStream
   #5 = Methodref          #4.#31         // java/io/PrintStream.println:(I)V
   #6 = Utf8               _id
   #7 = Utf8               Lorg/omg/CORBA/TypeCode;
   #8 = Class              #26            // java/lang/System
   #9 = Utf8               Code
  #10 = Utf8               M1436185437
  #11 = Class              #30            //
javax/print/attribute/PrintServiceAttribute
  #12 = Utf8               main
  #13 = Utf8               serialVersionUID
  #14 = Fieldref           #8.#1          //
java/lang/System.out:Ljava/io/PrintStream;
  #15 = Utf8               javax/print/attribute/URISyntax
  #16 = Class              #10            // M1436185437
  #17 = Utf8               J
  #18 = Utf8               MAX_SKIP_BUFFER_SIZE
  #19 = Utf8               SourceFile
  #20 = Utf8               I
  #21 = Utf8               (I)V
  #22 = Utf8               __typeCode
  #23 = Utf8               java/io/PrintStream
  #24 = Utf8               println
  #25 = Utf8               Jasmin
  #26 = Utf8               java/lang/System
  #27 = Utf8               value
  #28 = Utf8               Ljava/lang/String;
  #29 = Utf8               out
  #30 = Utf8               javax/print/attribute/PrintServiceAttribute
  #31 = NameAndType        #24:#21        // println:(I)V
  #32 = Class              #15            // javax/print/attribute/URISyntax
  #33 = Utf8               Ljava/io/PrintStream;
{
  public com.sun.corba.se.spi.activation.Locator value;
    descriptor: Lcom/sun/corba/se/spi/activation/Locator;
    flags: ACC_PUBLIC

  public com.sun.corba.se.spi.activation.Locator value;
    descriptor: Lcom/sun/corba/se/spi/activation/Locator;
    flags: ACC_PUBLIC

}

Yuting