8220355: Improve assertion texts and exception messages in eventHandlerVMInit
authormbaesken
Mon, 18 Mar 2019 15:29:19 +0100
changeset 54187 f554d3e88da3
parent 54186 3827cd66e788
child 54188 791052cc88db
8220355: Improve assertion texts and exception messages in eventHandlerVMInit Reviewed-by: alanb, sspitsyn, jcbeyler
src/java.instrument/share/native/libinstrument/InvocationAdapter.c
src/java.instrument/share/native/libinstrument/JPLISAgent.c
--- a/src/java.instrument/share/native/libinstrument/InvocationAdapter.c	Mon Mar 18 16:04:23 2019 +0100
+++ b/src/java.instrument/share/native/libinstrument/InvocationAdapter.c	Mon Mar 18 15:29:19 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -558,32 +558,32 @@
     environment = getJPLISEnvironment(jvmtienv);
 
     /* process the premain calls on the all the JPL agents */
-    if ( environment != NULL ) {
-        jthrowable outstandingException = NULL;
-        /*
-         * Add the jarfile to the system class path
-         */
-        JPLISAgent * agent = environment->mAgent;
-        if (appendClassPath(agent, agent->mJarfile)) {
-            fprintf(stderr, "Unable to add %s to system class path - "
-                    "the system class loader does not define the "
-                    "appendToClassPathForInstrumentation method or the method failed\n",
-                    agent->mJarfile);
-            free((void *)agent->mJarfile);
-            abortJVM(jnienv, JPLIS_ERRORMESSAGE_CANNOTSTART);
-        }
+    if (environment == NULL) {
+        abortJVM(jnienv, JPLIS_ERRORMESSAGE_CANNOTSTART ", getting JPLIS environment failed");
+    }
+    jthrowable outstandingException = NULL;
+    /*
+     * Add the jarfile to the system class path
+     */
+    JPLISAgent * agent = environment->mAgent;
+    if (appendClassPath(agent, agent->mJarfile)) {
+        fprintf(stderr, "Unable to add %s to system class path - "
+                "the system class loader does not define the "
+                "appendToClassPathForInstrumentation method or the method failed\n",
+                agent->mJarfile);
         free((void *)agent->mJarfile);
-        agent->mJarfile = NULL;
+        abortJVM(jnienv, JPLIS_ERRORMESSAGE_CANNOTSTART ", appending to system class path failed");
+    }
+    free((void *)agent->mJarfile);
+    agent->mJarfile = NULL;
 
-        outstandingException = preserveThrowable(jnienv);
-        success = processJavaStart( environment->mAgent,
-                                    jnienv);
-        restoreThrowable(jnienv, outstandingException);
-    }
+    outstandingException = preserveThrowable(jnienv);
+    success = processJavaStart( environment->mAgent, jnienv);
+    restoreThrowable(jnienv, outstandingException);
 
     /* if we fail to start cleanly, bring down the JVM */
     if ( !success ) {
-        abortJVM(jnienv, JPLIS_ERRORMESSAGE_CANNOTSTART);
+        abortJVM(jnienv, JPLIS_ERRORMESSAGE_CANNOTSTART ", processJavaStart failed");
     }
 }
 
--- a/src/java.instrument/share/native/libinstrument/JPLISAgent.c	Mon Mar 18 16:04:23 2019 +0100
+++ b/src/java.instrument/share/native/libinstrument/JPLISAgent.c	Mon Mar 18 15:29:19 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -389,17 +389,17 @@
      */
 
     /*
-     *  First make our emergency fallback InternalError throwable.
+     *  First make our fallback InternalError throwable.
      */
     result = initializeFallbackError(jnienv);
-    jplis_assert(result);
+    jplis_assert_msg(result, "fallback init failed");
 
     /*
      *  Now make the InstrumentationImpl instance.
      */
     if ( result ) {
         result = createInstrumentationImpl(jnienv, agent);
-        jplis_assert(result);
+        jplis_assert_msg(result, "instrumentation instance creation failed");
     }
 
 
@@ -409,7 +409,7 @@
      */
     if ( result ) {
         result = setLivePhaseEventHandlers(agent);
-        jplis_assert(result);
+        jplis_assert_msg(result, "setting of live phase VM handlers failed");
     }
 
     /*
@@ -419,6 +419,7 @@
         result = startJavaAgent(agent, jnienv,
                                 agent->mAgentClassName, agent->mOptionsString,
                                 agent->mPremainCaller);
+        jplis_assert_msg(result, "agent load/premain call failed");
     }
 
     /*