* Fwd: GIJ fails in checking three test classes
[not found] ` <CAKra361OXRMOQBtA4XYcjOZ+uAAHmOWEMkOvJFj-onSAiojOBA@mail.gmail.com>
@ 2015-07-09 21:27 ` Yuting Chen
0 siblings, 0 replies; only message in thread
From: Yuting Chen @ 2015-07-09 21:27 UTC (permalink / raw)
To: java
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
^ permalink raw reply [flat|nested] only message in thread