version 1.72, 2007/04/13 19:05:34
|
version 1.73, 2007/04/13 19:08:54
|
|
|
/*32*/ "java/lang/Character", | /*32*/ "java/lang/Character", |
/*33*/ "org/pegasus/jmpi/OperationContext", | /*33*/ "org/pegasus/jmpi/OperationContext", |
/*34*/ "java/lang/Class", | /*34*/ "java/lang/Class", |
/*35*/ "java/lang/StackTraceElement" |
/*35*/ "java/io/ByteArrayOutputStream", |
|
/*36*/ "java/io/PrintStream" |
}; | }; |
| |
const METHOD_STRUCT instanceMethodNames[]={ | const METHOD_STRUCT instanceMethodNames[]={ |
|
|
/*50 ClassGetInterfaces */ { /*Class */34, "getInterfaces", "()[Ljava/lang/Class;" }, | /*50 ClassGetInterfaces */ { /*Class */34, "getInterfaces", "()[Ljava/lang/Class;" }, |
/*51 ClassGetName */ { /*Class */34, "getName", "()Ljava/lang/String;" }, | /*51 ClassGetName */ { /*Class */34, "getName", "()Ljava/lang/String;" }, |
/*52 UnsignedInt64NewStr */ { /*UnsignedInt64 */11, "<init>", "(Ljava/lang/String;)V" }, | /*52 UnsignedInt64NewStr */ { /*UnsignedInt64 */11, "<init>", "(Ljava/lang/String;)V" }, |
/*53 ThrowableGetStackTrace */ { /*Throwable */21, "getStackTrace", "()Ljava/lang/StackTraceElement;" }, |
/*53 ByteArrayOutputStreamNew */ { /*ByteArrayOutputStream */35, "<init>", "()V" }, |
/*54 StackTraceElementGetClassName */ { /*StackTraceElement*/35, "getClassName", "()Ljava/lang/String;" }, |
/*54 PrintStreamNewOb */ { /*PrintStreamNew */36, "<init>", "(Ljava/io/OutputStream;)V" }, |
/*55 StackTraceElementGetFileName */ { /*StackTraceElement*/35, "getFileName", "()Ljava/lang/String;" }, |
/*55 ThrowablePrintStackTrace */ { /*Throwable */21, "printStackTrace", "(Ljava/io/PrintStream;)V" }, |
/*56 StackTraceElementGetLineNumber */ { /*StackTraceElement*/35, "getLineNumber", "()I" }, |
/*56 ByteArrayOutputStreamToString */ { /*ByteArrayOutputStream */35, "toString", "()Ljava/lang/String;" } |
/*57 StackTraceElementGetMethodName */ { /*StackTraceElement*/35, "getMethodName", "()Ljava/lang/String;" } |
|
}; | }; |
| |
const METHOD_STRUCT staticMethodNames[]={ | const METHOD_STRUCT staticMethodNames[]={ |
|
|
#if 0 | #if 0 |
| |
// Java 1.4 version of programmatically accessting the backtrace stack | // Java 1.4 version of programmatically accessting the backtrace stack |
|
// NOTE: Renumber to follow current content |
|
// add to: |
|
// const char* classNames[]={ |
|
///*37*/ "java/lang/StackTraceElement" |
|
// add to: |
|
// const METHOD_STRUCT instanceMethodNames[]={ |
///*57 ThrowableGetStackTrace */ { /*Throwable */21, "getStackTrace", "()Ljava/lang/StackTraceElement;" }, | ///*57 ThrowableGetStackTrace */ { /*Throwable */21, "getStackTrace", "()Ljava/lang/StackTraceElement;" }, |
///*58 StackTraceElementGetClassName */ { /*StackTraceElement*/35, "getClassName", "()Ljava/lang/String;" }, |
///*58 StackTraceElementGetClassName */ { /*StackTraceElement*/37, "getClassName", "()Ljava/lang/String;" }, |
///*59 StackTraceElementGetFileName */ { /*StackTraceElement*/35, "getFileName", "()Ljava/lang/String;" }, |
///*59 StackTraceElementGetFileName */ { /*StackTraceElement*/37, "getFileName", "()Ljava/lang/String;" }, |
///*60 StackTraceElementGetLineNumber */ { /*StackTraceElement*/35, "getLineNumber", "()I" }, |
///*60 StackTraceElementGetLineNumber */ { /*StackTraceElement*/37, "getLineNumber", "()I" }, |
///*61 StackTraceElementGetMethodName */ { /*StackTraceElement*/35, "getMethodName", "()Ljava/lang/String;" } |
///*61 StackTraceElementGetMethodName */ { /*StackTraceElement*/37, "getMethodName", "()Ljava/lang/String;" } |
| |
String getExceptionInfo (JNIEnv *env) | String getExceptionInfo (JNIEnv *env) |
{ | { |
|
|
String id; | String id; |
jthrowable err = env->ExceptionOccurred(); | jthrowable err = env->ExceptionOccurred(); |
| |
DDD(env->ExceptionDescribe()); |
///DDD (PEGASUS_STD (cerr) << "JMPIjvm::checkException: err = " |
|
/// << PEGASUS_STD (hex) |
|
/// << (jlong)err |
|
/// << PEGASUS_STD (dec) |
|
/// << PEGASUS_STD (endl)); |
| |
if (!err) | if (!err) |
return; | return; |
| |
|
DDD(PEGASUS_STD(cerr)<<"--- Provider caused an exception!"<<PEGASUS_STD(endl)); |
|
|
|
DDD(env->ExceptionDescribe ()); |
|
|
if (env->IsInstanceOf (err, JMPIjvm::jv.CIMExceptionClassRef)) | if (env->IsInstanceOf (err, JMPIjvm::jv.CIMExceptionClassRef)) |
{ | { |
env->ExceptionClear (); | env->ExceptionClear (); |
|
|
} | } |
else | else |
{ | { |
DDD(PEGASUS_STD(cerr)<<"--- Provider caused an exception!"<<PEGASUS_STD(endl)); |
|
|
|
#ifdef PEGASUS_DEBUG |
|
env->ExceptionDescribe(); |
|
#endif |
|
|
|
String info = getExceptionInfo (env); | String info = getExceptionInfo (env); |
| |
env->ExceptionClear (); | env->ExceptionClear (); |