< prev index next >
src/java.base/share/native/libjava/jni_util.c
Print this page
rev 52921 : 8211752: JNU_ThrowIOExceptionWithLastErrorAndPath - enhance some IOExceptions with path causing the issue
@@ -173,10 +173,29 @@
if (!(*env)->ExceptionOccurred(env)) {
JNU_ThrowByName(env, name, defaultDetail);
}
}
+
+JNIEXPORT void JNICALL
+JNU_ThrowByNameWithTwoMessagesAndLastError
+ (JNIEnv *env, const char *name, const char *message1, const char *message2)
+{
+ /* maybe we need to cache errno ? */
+ size_t messagelen1 = message1 == NULL ? 0 : strlen(message1);
+ size_t messagelen2 = message2 == NULL ? 0 : strlen(message2);
+ size_t messageconclen = messagelen1 + messagelen2 + 3;
+ char *strl = (char *)malloc(messageconclen * sizeof(char));
+ if (strl == 0) {
+ JNU_ThrowOutOfMemoryError(env, 0);
+ return;
+ }
+ jio_snprintf(strl, messageconclen, "%s:%s", message1, message2);
+ JNU_ThrowByNameWithMessageAndLastError(env, name, strl);
+ free(strl);
+}
+
/*
* Throw an exception by name, using a given message and the string
* returned by getLastErrorString to construct the detail string.
*/
JNIEXPORT void JNICALL
< prev index next >