The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
Native methods are calling into JNI with exceptions pending ...
See suggested fix...
Java_java_io_ObjectStreamClass_hasStaticInitializer
###@###.### 2004-11-12 19:53:23 GMT
Comments
CONVERTED DATA
BugTraq+ Release Management Values
COMMIT TO FIX:
tiger
FIXED IN:
tiger
INTEGRATED IN:
tiger
tiger-b20
14-06-2004
SUGGESTED FIX
java_io_ObjectStreamClass has two instances of
jmethodID clinitId =
(*env)->GetStaticMethodID(env, clazz, "<clinit>", "()V");
if (clinitId == NULL) { /* error thrown */
jthrowable th = (*env)->ExceptionOccurred(env);
if ((*env)->IsInstanceOf(env, th, noSuchMethodErrCl)) {
(*env)->ExceptionClear(env); /* normal return */
}
return JNI_FALSE;
}
which should be changed to
jmethodID clinitId =
(*env)->GetStaticMethodID(env, clazz, "<clinit>", "()V");
if (clinitId == NULL) { /* error thrown */
jthrowable th = (*env)->ExceptionOccurred(env);
(*env)->ExceptionClear(env); /* normal return */
if (!(*env)->IsInstanceOf(env, th, noSuchMethodErrCl)) {
(*env)->Throw(env, th);
}
return JNI_FALSE;
}
11-06-2004
EVALUATION
The submitter is correct.
###@###.### 2003-01-15
###@###.### 2003-01-28
No, he's not. The blanket statement that JNI calls may not be made
with exceptions pending is false. The spec says that JNI methods which
can throw exceptions must check for them. IsInstanceOf is not one of them.
This is not a bug.
The suggested fix has been implemented even though it may be desirable to lessen the restrictions on certain JNI calls in the future.
###@###.### 2003-09-08