Hello,

I have two classes SimpleClass and SimpleSuperClass with no fields and methods.

I need to specify superclass SimpleSuperClass for SimpleClass in BCEL.

When I'm trying to do this, I get the following exception when I
access the class with the code:
Class clazz = Class.forName( "com.jnetx.jdo.SimpleClass" );

java.lang.VerifyError: (class: com/jnetx/jdo/SimpleClass, method: <init> 
signature: ()V) Call to wrong initialization method
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:141)
        at com.jnetx.jdo.TestBCEL.class$(TestBCEL.java:40)
        at com.jnetx.jdo.TestBCEL.testCheckSimpleClass(TestBCEL.java:72)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at 
com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:31)


The code how I specify the superclass is the following:


        JavaClass jc = Repository.lookupClass( SimpleClass.class );
        ClassGen cg = new ClassGen( jc );

        cg.setSuperclassName( SimpleSuperClass.class.getName() );
        cg.update();

        String className = SimpleClass.class.getName();
        String path = Repository.lookupClassFile(className).getPath();

        File f = new File(path);
        FileOutputStream fOut = null;
        try
        {
            fOut = new FileOutputStream(f);
            BufferedOutputStream bout = new BufferedOutputStream(fOut);

            cg.getJavaClass().dump(bout);
            bout.flush();

            bout.flush();
        }
        finally
        {
            try
            {
                fOut.close();
                fOut = null;
            }
            catch (Exception ignore)
            {
                //ignore exception in closing the stream
            }
        }
        

What am I doing wrong?

Thanks.
        
------------
Best regards,
Anton Mironenko
Software Engineer
jNETx LLC
tel. +7 095 780 790 0
mailto:[EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to