This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: infinite recursion, SIGSEGV thrown and caught over and over, might be reflection related


Oops, I actually have another clue to add.

node/State.java:

            try {
                recv = this.getClass().getDeclaredMethod(
                    "receivedMessage", new Class[] { Freenet.node.Node.class,
                                                     mo.getClass() } );
            }
            catch (SecurityException e) {
                throw new BadStateException("??? SecurityException ???  WTF!!: "+e);
            }
            catch (NoSuchMethodException e) {
                throw new BadStateException("State does not receive this message: "+e);
            }
        
            if (!State.class.isAssignableFrom(recv.getReturnType())) {
                throw new BadStateException("bad receivedMessage() return type declared: "
                                            + recv.getReturnType());
            }
            
            Class[] exceptions = recv.getExceptionTypes();
            for (int i=0; i<exceptions.length; ++i) {
                if (!StateException.class.isAssignableFrom(exceptions[i]))
                    throw new BadStateException("bad receivedMessage() exception declared: "
                                                + exceptions[i]);
            }

When this is run with the gij interpreter, I see this exception:

Freenet.node.BadStateException: bad receivedMessage() exception declared: float
   at 0x401baf20: java.lang.Throwable.Throwable(java.lang.String) (/lib/libgcj.so.2)
   at 0x401af4e6: java.lang.Exception.Exception(java.lang.String) (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c5b4: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c5b4: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c5b4: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c5b4: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c5b4: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c63d: _Jv_InterpMethod.run_synch_object(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c5b4: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c5b4: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c5b4: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c5b4: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x402de527: ffi_call_SYSV (/lib/libgcj.so.2)
   at 0x402de4d1: ffi_raw_call (/lib/libgcj.so.2)
   at 0x4018c8d7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x402e1088: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw, _Jv_InterpMethodInvocation) (/lib/libgcj.so.2)
   at 0x4018c5b4: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void) (/lib/libgcj.so.2)
   at 0x402de35c: ffi_prep_closure (/lib/libgcj.so.2)
   at 0x401b8293: java.lang.Thread.run() (/lib/libgcj.so.2)
   at 0x401a237c: _Jv_ThreadRun(java.lang.Thread) (/lib/libgcj.so.2)
   at 0x402dd690: _Jv_ThreadUnRegister() (/lib/libgcj.so.2)
   at 0x4046315a: GC_start_routine (/lib/libgcjgc.so.1)
   at 0x40487cf8: pthread_detach (/lib/libpthread.so.0)
   at 0x405b680a: __clone (/lib/libc.so.6)

...which seems interesting.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]