src/java.instrument/share/classes/sun/instrument/InstrumentationImpl.java
changeset 47777 d85284ccd1bd
parent 47216 71c04702a3d5
child 49637 ab0f93ba0507
--- a/src/java.instrument/share/classes/sun/instrument/InstrumentationImpl.java	Fri Nov 03 10:48:26 2017 -0700
+++ b/src/java.instrument/share/classes/sun/instrument/InstrumentationImpl.java	Fri Nov 03 17:09:25 2017 -0700
@@ -103,6 +103,9 @@
             }
         } else {
             mTransformerManager.addTransformer(transformer);
+            if (mTransformerManager.getTransformerCount() == 1) {
+                setHasTransformers(mNativeAgent, true);
+            }
         }
     }
 
@@ -114,8 +117,12 @@
         TransformerManager mgr = findTransformerManager(transformer);
         if (mgr != null) {
             mgr.removeTransformer(transformer);
-            if (mgr.isRetransformable() && mgr.getTransformerCount() == 0) {
-                setHasRetransformableTransformers(mNativeAgent, false);
+            if (mgr.getTransformerCount() == 0) {
+                if (mgr.isRetransformable()) {
+                    setHasRetransformableTransformers(mNativeAgent, false);
+                } else {
+                    setHasTransformers(mNativeAgent, false);
+                }
             }
             return true;
         }
@@ -362,6 +369,9 @@
     isRetransformClassesSupported0(long nativeAgent);
 
     private native void
+    setHasTransformers(long nativeAgent, boolean has);
+
+    private native void
     setHasRetransformableTransformers(long nativeAgent, boolean has);
 
     private native void