diff --git a/src/share/classes/java/lang/instrument/Instrumentation.java b/src/share/classes/java/lang/instrument/Instrumentation.java
index 1844837fd3b2d6172dff9699a1c31d2399fdd88b..4cdb2de9c9aac0819d1d7d4ae0eefb3ce5bc48d7 100644
--- a/src/share/classes/java/lang/instrument/Instrumentation.java
+++ b/src/share/classes/java/lang/instrument/Instrumentation.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2013, 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
@@ -363,6 +363,8 @@ public interface Instrumentation {
* Primitive classes (for example, java.lang.Integer.TYPE)
* and array classes are never modifiable.
*
+ * @param theClass the class to check for being modifiable
+ * @return whether or not the argument class is modifiable
* @throws java.lang.NullPointerException if the specified class is null.
*
* @see #retransformClasses
@@ -549,14 +551,14 @@ public interface Instrumentation {
* {@link java.lang.instrument.ClassFileTransformer ClassFileTransformer},
* it enables native methods to be
* instrumented.
- *
* Since native methods cannot be directly instrumented * (they have no bytecodes), they must be wrapped with * a non-native method which can be instrumented. * For example, if we had: *
* native boolean foo(int x);
- *
+ * * We could transform the class file (with the * ClassFileTransformer during the initial definition * of the class) so that this becomes: @@ -567,14 +569,14 @@ public interface Instrumentation { * } * * native boolean wrapped_foo(int x); - *
+ *
* Where foo becomes a wrapper for the actual native
* method with the appended prefix "wrapped_". Note that
* "wrapped_" would be a poor choice of prefix since it
* might conceivably form the name of an existing method
* thus something like "$$$MyAgentWrapped$$$_" would be
* better but would make these examples less readable.
- *
* The wrapper will allow data to be collected on the native * method call, but now the problem becomes linking up the * wrapped method with the native implementation. @@ -583,7 +585,7 @@ public interface Instrumentation { * which might be: *
* Java_somePackage_someClass_foo(JNIEnv* env, jint x)
- *
+ * * This function allows the prefix to be specified and the * proper resolution to occur. * Specifically, when the standard resolution fails, the @@ -596,29 +598,29 @@ public interface Instrumentation { *
{@code
* method(foo) -> nativeImplementation(foo)
* }
- *
+ * * When this fails, the resolution will be retried with * the specified prefix prepended to the method name, * yielding the correct resolution: *
{@code
* method(wrapped_foo) -> nativeImplementation(foo)
* }
- *
+ * * For automatic resolution, the JVM will attempt: *
{@code
* method(wrapped_foo) -> nativeImplementation(wrapped_foo)
* }
- *
+ * * When this fails, the resolution will be retried with * the specified prefix deleted from the implementation name, * yielding the correct resolution: *
{@code
* method(wrapped_foo) -> nativeImplementation(foo)
* }
- *
+ * * Note that since the prefix is only used when standard * resolution fails, native methods can be wrapped selectively. - *
+ *
* Since each ClassFileTransformer
* can do its own transformation of the bytecodes, more
* than one layer of wrappers may be applied. Thus each