bug-classpath
[Top][All Lists]
Advanced

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

[Bug classpath/23431] New: abstract method resolve error in gij


From: snambi at gmail dot com
Subject: [Bug classpath/23431] New: abstract method resolve error in gij
Date: 17 Aug 2005 05:55:55 -0000

there is an abstract class, class B which implements an interface. the method
defined by the interface, is the abstract method. Another class C extends B and
implements the method. it compiles in gcj -C.

while executing in gij, it throws an IllegalAccessError from
VMClassLoader.resolveClass.

below is the sequence.

$cat B.java
abstract class B implements javax.jms.MessageListener
{
        public B()
        {
        System.out.println("Class B instantiated");
        }

        abstract void onMessage( javax.jms.Message message );
}
matrix:~/src/java/abs_classes>
$cat C.java
class C extends B
{
        public C()
        {
                System.out.println("Class C instantiated");
        }

        void onMessage(javax.jms.Message message)
        {
                System.out.println("abstract method test implemented");
        }
}

$cat A.java
class A
{
    private C c = null;
        public A()
        {
                System.out.println("A is getting instantiated");

        c = new C();
        }

        public static void main( String[] args )
        {
                A a = new A();
        }
}

matrix:~/src/java/abs_classes>
$gcj --classpath=.:jms.jar -C *.java

there is a jms.jar file in the current directry.

matrix:~/src/java/abs_classes>
$gij --cp ".:jms.jar" A
A is getting instantiated
Exception in thread "main" java.lang.IllegalAccessError: C.onMessage
(Ljavax.jms.Message;)V
   at java.lang.VMClassLoader.resolveClass(java.lang.Class)
(/otp/software/gcc/4.0.1/lib/libgcj.so.6.0.0)
   at java.lang.Class.initializeClass()
(/otp/software/gcc/4.0.1/lib/libgcj.so.6.0.0)
   at A.A() (Unknown Source)
   at A.main(java.lang.String[]) (Unknown Source)
   at gnu.java.lang.MainThread.call_main()
(/otp/software/gcc/4.0.1/lib/libgcj.so.6.0.0)
   at gnu.java.lang.MainThread.run() 
(/otp/software/gcc/4.0.1/lib/libgcj.so.6.0.0)

sorry for pasting the source code. it is too difficult to explain it otherwise.

gcj -v --help 
.
.
.
Target: i686-pc-linux-gnu
Configured with: ../configure --prefix=/otp/software/gcc/4.0.1
Thread model: posix
gcc version 4.0.1

-- 
           Summary: abstract method resolve error in gij
           Product: classpath
           Version: unspecified
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: classpath
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: snambi at gmail dot com
                CC: bug-classpath at gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23431




reply via email to

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