classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compiling with jikes > 1.13


From: Mark Wielaard
Subject: Re: Compiling with jikes > 1.13
Date: 06 Feb 2002 15:40:39 +0100

Hi,

On Tue, 2002-02-05 at 22:08, Tom Tromey wrote:
> 
> Using the runtime verifier in this situation would be hard, because
> you'd have to convince libgcj to load the bytecode for various java.*
> classes, which are preloaded.

The attached program tries to do it anyway. And I get a lot of verify
errors when using this verifier on classes generated with jikes 1.15.
But as you can see from the attached output I also got a lot of other
errors that indicate that libgcj doesn't like what I am doing :)

Besides Object, Class and ClassLoader I had to remove the following
classes since they seemed to completely hang the verifier!
  java/lang/reflect/Proxy*.class
  java/util/AbstractMap\$1.class 
  java/util/AbstractMap\$3.class 
  java/util/Collections$7.class
  java/util/Collections\$7.class 
  java/util/Collections$SingletonMap.class
  java/util/Collections\$SingletonMap.class 
  java/util/Collections\$SynchronizedMap.class 
  java/util/WeakHashMap\$WeakEntrySet.class 
  java/util/zip/DeflaterHuffman.class 
  java/util/TreeMap\$SubMap.class 
  java/text/RuleBasedCollator.class 
  gnu/java/awt/peer/gtk/GtkComponentPeer.class 

I am going to play a bit more with this to see if I can see were some of
the other errors come from to better understand what libgcj is doing and
wether I am not feeding you completely bogus data.

Cheers,

Mark
import java.io.*;

public class VerifyClass extends ClassLoader
{
    public static void main(String args[])
    {
        if (args.length == 1)
          {
            System.out.println("Verifying: " + args[0]);
            try
              {
                new VerifyClass().verify(args[0]);
              }
            catch (IOException ioe)
              {
                System.err.println(ioe);
              }
          }
        else
          System.out.println("argument must be a class file");
    }

    void verify(String classFile) throws IOException
    {
        InputStream is = new FileInputStream(classFile);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        byte[] buf = new byte[2048];
        int read = is.read(buf);

        while(read > 0)
          {
            os.write(buf, 0, read);
            read = is.read(buf);
          }

        byte[] data = os.toByteArray();

        try
          {
            Class c = defineClass(data, 0, data.length);
            resolveClass(c);
          }
        catch(Error e)
          {
            System.err.println(e);
          }
    }
}
java.lang.VerifyError: verification failed at PC 31 in 
java.lang.String:toCharArray(()[C): incompatible type on stack
java.lang.VerifyError: verification failed at PC 18 in 
java.io.ObjectInputStream:resolveClass((Ljava.io.ObjectStreamClass;)Ljava.lang.Class;):
 incompatible type on stack
java.lang.IncompatibleClassChangeError: java.util.RandomAccessSubList
java.lang.IncompatibleClassChangeError: java.util.Hashtable$HashEntry
java.lang.VerifyError: verification failed at PC 224 in 
java.util.TimeZone:getTimeZone((Ljava.lang.String;)Ljava.util.TimeZone;): 
incompatible return type
java.lang.VerifyError: verification failed at PC 106 in 
java.util.ResourceBundle:tryBundle((Ljava.lang.String;Ljava.util.Locale;Ljava.lang.ClassLoader;Ljava.util.ResourceBundle;Ljava.util.HashMap;)Ljava.util.ResourceBundle;):
 incompatible type on stack
java.lang.VerifyError: verification failed at PC 165 in 
java.util.Calendar:getInstance((Ljava.util.TimeZone;Ljava.util.Locale;)Ljava.util.Calendar;):
 incompatible return type
java.lang.IncompatibleClassChangeError: java.util.HashMap$HashEntry
java.lang.IncompatibleClassChangeError: java.util.Collections$3
java.lang.IncompatibleClassChangeError: java.util.Collections$4
java.lang.IncompatibleClassChangeError: java.util.Collections$5
java.lang.IncompatibleClassChangeError: java.util.Collections$6
java.lang.VerifyError: verification failed at PC 8 in 
java.util.Collections$SingletonSet:iterator(()Ljava.util.Iterator;): 
incompatible return type
java.lang.IncompatibleClassChangeError: java.util.Collections$SynchronizedList
java.lang.IncompatibleClassChangeError: 
java.util.Collections$SynchronizedRandomAccessList
java.lang.IncompatibleClassChangeError: 
java.util.Collections$SynchronizedListIterator
java.lang.IncompatibleClassChangeError: java.util.Collections$SynchronizedSet
java.lang.IncompatibleClassChangeError: 
java.util.Collections$SynchronizedSortedMap
java.lang.IncompatibleClassChangeError: 
java.util.Collections$SynchronizedSortedSet
java.lang.IncompatibleClassChangeError: java.util.Collections$UnmodifiableList
java.lang.IncompatibleClassChangeError: 
java.util.Collections$UnmodifiableRandomAccessList
java.lang.IncompatibleClassChangeError: 
java.util.Collections$UnmodifiableListIterator
java.lang.IncompatibleClassChangeError: 
java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet
java.lang.IncompatibleClassChangeError: java.util.Collections$UnmodifiableSet
java.lang.IncompatibleClassChangeError: 
java.util.Collections$UnmodifiableSortedMap
java.lang.IncompatibleClassChangeError: 
java.util.Collections$UnmodifiableSortedSet
java.lang.IncompatibleClassChangeError: java.util.zip.ZipFile
java.lang.IncompatibleClassChangeError: java.util.zip.ZipOutputStream
java.lang.IncompatibleClassChangeError: java.util.zip.DeflaterEngine
java.lang.IncompatibleClassChangeError: java.util.zip.DeflaterPending
java.lang.InternalError: unexpected exception during linking: 
java.lang.ClassNotFoundException: java.util.zip.DeflaterHuffman
java.lang.InternalError: unexpected exception during linking: 
java.lang.ClassNotFoundException: java.util.zip.DeflaterHuffman
java.lang.IncompatibleClassChangeError: java.util.zip.ZipInputStream
java.lang.IncompatibleClassChangeError: java.util.zip.GZIPInputStream
java.lang.IncompatibleClassChangeError: java.util.zip.GZIPOutputStream
java.lang.IncompatibleClassChangeError: java.util.LinkedHashMap$LinkedHashEntry
java.lang.IncompatibleClassChangeError: java.util.TreeMap$Node
java.lang.VerifyError: verification failed at PC 54 in 
java.net.InetAddress:checkCacheFor((Ljava.lang.String;)[Ljava.net.InetAddress;):
 array required
java.lang.VerifyError: verification failed at PC 82 in 
java.net.URLDecoder:decode((Ljava.lang.String;Ljava.lang.String;)Ljava.lang.String;):
 array type expected
java.lang.VerifyError: verification failed at PC 7 in 
java.security.Policy:<clinit>(()V): incompatible type on stack
java.lang.VerifyError: verification failed at PC 47 in 
java.security.KeyPairGenerator:getInstance((Ljava.lang.String;Ljava.lang.String;Ljava.security.Provider;)Ljava.security.KeyPairGenerator;):
 incompatible type on stack
java.lang.VerifyError: verification failed at PC 47 in 
java.security.Signature:getInstance((Ljava.lang.String;Ljava.lang.String;Ljava.security.Provider;)Ljava.security.Signature;):
 incompatible type on stack
java.lang.VerifyError: verification failed at PC 37 in 
java.security.Identity:hashCode(()I): incompatible type on stack
java.lang.VerifyError: verification failed at PC 321 in 
java.text.DateFormat:computeInstance((IILjava.util.Locale;ZZ)Ljava.text.DateFormat;):
 incompatible return type
java.lang.VerifyError: verification failed at PC 58 in 
java.text.NumberFormat:computeInstance((Ljava.util.Locale;Ljava.lang.String;Ljava.lang.String;)Ljava.text.NumberFormat;):
 incompatible return type
java.lang.VerifyError: verification failed at PC 961 in 
java.text.SimpleDateFormat:parse((Ljava.lang.String;Ljava.text.ParsePosition;)Ljava.util.Date;):
 array type expected
java.lang.VerifyError: verification failed at PC 163 in 
java.text.AttributedString:<init>((Ljava.text.AttributedCharacterIterator;II[Ljava.text.AttributedCharacterIterator$Attribute;)V):
 incompatible type on stack
java.lang.VerifyError: verification failed at PC 20 in 
java.text.BreakIterator:getCharacterInstance((Ljava.util.Locale;)Ljava.text.BreakIterator;):
 incompatible return type
java.lang.VerifyError: verification failed at PC 28 in 
java.text.Collator:getInstance((Ljava.util.Locale;)Ljava.text.Collator;): 
incompatible return type
java.lang.VerifyError: verification failed at PC 18 in 
java.awt.image.ColorModel:getRGBdefault(()Ljava.awt.image.ColorModel;): 
incompatible return type
java.lang.InternalError: unexpected exception during linking: 
java.lang.NullPointerException
java.lang.VerifyError: verification failed at PC 34 in 
java.awt.Component:getGraphicsConfigurationImpl(()Ljava.awt.GraphicsConfiguration;):
 incompatible type on stack
java.lang.IncompatibleClassChangeError: java.awt.Container$GfxPaintVisitor
java.lang.IncompatibleClassChangeError: java.awt.Container$GfxPrintVisitor
java.lang.IncompatibleClassChangeError: java.awt.Container$GfxPaintAllVisitor
java.lang.IncompatibleClassChangeError: java.awt.Container$GfxPrintAllVisitor
java.lang.VerifyError: verification failed at PC 2 in 
java.awt.geom.RectangularShape:setFrame((Ljava.awt.geom.Rectangle2D;)V): 
incompatible type on stack
java.lang.InternalError: unexpected exception during linking: 
java.lang.NullPointerException
java.lang.VerifyError: verification failed at PC 2 in 
java.awt.Window:<init>((Ljava.awt.Frame;)V): incompatible type on stack
java.lang.VerifyError: verification failed at PC 12 in 
java.beans.beancontext.BeanContextChildSupport:<init>((Ljava.beans.beancontext.BeanContextChild;)V):
 incompatible type on stack
java.lang.VerifyError: verification failed at PC 7 in 
java.rmi.server.RMISocketFactory:<clinit>(()V): incompatible type on stack
java.lang.VerifyError: verification failed at PC 20 in 
java.rmi.server.ObjID:<init>(()V): incompatible type on stack
java.lang.LinkageError: class gnu.java.io.decode.Decoder already loaded
java.lang.LinkageError: class gnu.java.io.decode.Decoder already loaded
java.lang.LinkageError: class gnu.java.io.decode.Decoder already loaded
java.lang.LinkageError: class gnu.java.io.decode.Decoder already loaded
java.lang.LinkageError: class gnu.java.io.decode.Decoder already loaded
java.lang.LinkageError: class gnu.java.io.encode.Encoder already loaded
java.lang.LinkageError: class gnu.java.io.encode.Encoder already loaded
java.lang.LinkageError: class gnu.java.io.encode.Encoder already loaded
java.lang.LinkageError: class gnu.java.io.encode.Encoder already loaded
java.lang.LinkageError: class gnu.java.io.encode.Encoder already loaded
java.lang.InternalError: unexpected exception during linking: 
java.lang.NullPointerException
java.lang.InternalError: unexpected exception during linking: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: unexpected exception during linking: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class null: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class null: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class null: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class 
gnu.java.awt.peer.gtk.GtkToggleButtonPeer: java.lang.ClassNotFoundException: 
gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.LinkageError: class gnu.java.awt.peer.gtk.GtkGenericPeer already 
loaded
java.lang.LinkageError: class gnu.java.awt.peer.gtk.GtkGenericPeer already 
loaded
java.lang.InternalError: Unexpected exception while defining class null: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class null: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class null: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class 
gnu.java.awt.peer.gtk.GtkContainerPeer: java.lang.ClassNotFoundException: 
gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class 
gnu.java.awt.peer.gtk.GtkContainerPeer: java.lang.ClassNotFoundException: 
gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class 
gnu.java.awt.peer.gtk.GtkContainerPeer: java.lang.ClassNotFoundException: 
gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class 
gnu.java.awt.peer.gtk.GtkContainerPeer: java.lang.ClassNotFoundException: 
gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class null: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class null: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class 
gnu.java.awt.peer.gtk.GtkContainerPeer: java.lang.ClassNotFoundException: 
gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class 
gnu.java.awt.peer.gtk.GtkToggleButtonPeer: java.lang.ClassNotFoundException: 
gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class 
gnu.java.awt.peer.gtk.GtkContainerPeer: java.lang.ClassNotFoundException: 
gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class null: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class null: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class 
gnu.java.awt.peer.gtk.GtkTextComponentPeer: java.lang.ClassNotFoundException: 
gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: Unexpected exception while defining class 
gnu.java.awt.peer.gtk.GtkTextComponentPeer: java.lang.ClassNotFoundException: 
gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.InternalError: unexpected exception during linking: 
java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkComponentPeer
java.lang.VerifyError: verification failed at PC 43 in 
gnu.java.rmi.server.UnicastConnectionManager:getInstance((Ljava.lang.String;ILjava.rmi.server.RMIClientSocketFactory;)Lgnu.java.rmi.server.UnicastConnectionManager;):
 incompatible type on stack
java.lang.InternalError: unexpected exception during linking: 
java.lang.NullPointerException
java.lang.InternalError: unexpected exception during linking: 
java.lang.NullPointerException

reply via email to

[Prev in Thread] Current Thread [Next in Thread]