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

Mark J Roberts mjr@znex.org
Mon Sep 3 04:08:00 GMT 2001


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.


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /