--- 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