209 * 210 * <P> 211 * If a retransformed method has active stack frames, those active frames continue to 212 * run the bytecodes of the original method. 213 * The retransformed method will be used on new invokes. 214 * 215 * <P> 216 * This method does not cause any initialization except that which would occur 217 * under the customary JVM semantics. In other words, redefining a class 218 * does not cause its initializers to be run. The values of static variables 219 * will remain as they were prior to the call. 220 * 221 * <P> 222 * Instances of the retransformed class are not affected. 223 * 224 * <P> 225 * The retransformation may change method bodies, the constant pool and 226 * attributes (unless explicitly prohibited). 227 * The retransformation must not add, remove or rename fields or methods, change the 228 * signatures of methods, or change inheritance. 229 * The retransformation must not change the <code>NestHost</code> or 230 * <code>NestMembers</code> attributes. 231 * These restrictions may be lifted in future versions. 232 * The class file bytes are not checked, verified and installed 233 * until after the transformations have been applied, if the resultant bytes are in 234 * error this method will throw an exception. 235 * 236 * <P> 237 * If this method throws an exception, no classes have been retransformed. 238 * <P> 239 * This method is intended for use in instrumentation, as described in the 240 * {@linkplain Instrumentation class specification}. 241 * 242 * @param classes array of classes to retransform; 243 * a zero-length array is allowed, in this case, this method does nothing 244 * @throws java.lang.instrument.UnmodifiableClassException if a specified class cannot be modified 245 * ({@link #isModifiableClass} would return <code>false</code>) 246 * @throws java.lang.UnsupportedOperationException if the current configuration of the JVM does not allow 247 * retransformation ({@link #isRetransformClassesSupported} is false) or the retransformation attempted 248 * to make unsupported changes 249 * @throws java.lang.ClassFormatError if the data did not contain a valid class 250 * @throws java.lang.NoClassDefFoundError if the name in the class file is not equal to the name of the class 300 * 301 * <P> 302 * If a redefined method has active stack frames, those active frames continue to 303 * run the bytecodes of the original method. 304 * The redefined method will be used on new invokes. 305 * 306 * <P> 307 * This method does not cause any initialization except that which would occur 308 * under the customary JVM semantics. In other words, redefining a class 309 * does not cause its initializers to be run. The values of static variables 310 * will remain as they were prior to the call. 311 * 312 * <P> 313 * Instances of the redefined class are not affected. 314 * 315 * <P> 316 * The redefinition may change method bodies, the constant pool and attributes 317 * (unless explicitly prohibited). 318 * The redefinition must not add, remove or rename fields or methods, change the 319 * signatures of methods, or change inheritance. 320 * The redefinition must not change the <code>NestHost</code> or 321 * <code>NestMembers</code> attributes. 322 * These restrictions may be lifted in future versions. 323 * The class file bytes are not checked, verified and installed 324 * until after the transformations have been applied, if the resultant bytes are in 325 * error this method will throw an exception. 326 * 327 * <P> 328 * If this method throws an exception, no classes have been redefined. 329 * <P> 330 * This method is intended for use in instrumentation, as described in the 331 * {@linkplain Instrumentation class specification}. 332 * 333 * @param definitions array of classes to redefine with corresponding definitions; 334 * a zero-length array is allowed, in this case, this method does nothing 335 * @throws java.lang.instrument.UnmodifiableClassException if a specified class cannot be modified 336 * ({@link #isModifiableClass} would return <code>false</code>) 337 * @throws java.lang.UnsupportedOperationException if the current configuration of the JVM does not allow 338 * redefinition ({@link #isRedefineClassesSupported} is false) or the redefinition attempted 339 * to make unsupported changes 340 * @throws java.lang.ClassFormatError if the data did not contain a valid class 341 * @throws java.lang.NoClassDefFoundError if the name in the class file is not equal to the name of the class | 209 * 210 * <P> 211 * If a retransformed method has active stack frames, those active frames continue to 212 * run the bytecodes of the original method. 213 * The retransformed method will be used on new invokes. 214 * 215 * <P> 216 * This method does not cause any initialization except that which would occur 217 * under the customary JVM semantics. In other words, redefining a class 218 * does not cause its initializers to be run. The values of static variables 219 * will remain as they were prior to the call. 220 * 221 * <P> 222 * Instances of the retransformed class are not affected. 223 * 224 * <P> 225 * The retransformation may change method bodies, the constant pool and 226 * attributes (unless explicitly prohibited). 227 * The retransformation must not add, remove or rename fields or methods, change the 228 * signatures of methods, or change inheritance. 229 * The retransformation must not change the <code>NestHost</code>, 230 * <code>NestMembers</code>, or <code>Record</code> attributes. 231 * These restrictions may be lifted in future versions. 232 * The class file bytes are not checked, verified and installed 233 * until after the transformations have been applied, if the resultant bytes are in 234 * error this method will throw an exception. 235 * 236 * <P> 237 * If this method throws an exception, no classes have been retransformed. 238 * <P> 239 * This method is intended for use in instrumentation, as described in the 240 * {@linkplain Instrumentation class specification}. 241 * 242 * @param classes array of classes to retransform; 243 * a zero-length array is allowed, in this case, this method does nothing 244 * @throws java.lang.instrument.UnmodifiableClassException if a specified class cannot be modified 245 * ({@link #isModifiableClass} would return <code>false</code>) 246 * @throws java.lang.UnsupportedOperationException if the current configuration of the JVM does not allow 247 * retransformation ({@link #isRetransformClassesSupported} is false) or the retransformation attempted 248 * to make unsupported changes 249 * @throws java.lang.ClassFormatError if the data did not contain a valid class 250 * @throws java.lang.NoClassDefFoundError if the name in the class file is not equal to the name of the class 300 * 301 * <P> 302 * If a redefined method has active stack frames, those active frames continue to 303 * run the bytecodes of the original method. 304 * The redefined method will be used on new invokes. 305 * 306 * <P> 307 * This method does not cause any initialization except that which would occur 308 * under the customary JVM semantics. In other words, redefining a class 309 * does not cause its initializers to be run. The values of static variables 310 * will remain as they were prior to the call. 311 * 312 * <P> 313 * Instances of the redefined class are not affected. 314 * 315 * <P> 316 * The redefinition may change method bodies, the constant pool and attributes 317 * (unless explicitly prohibited). 318 * The redefinition must not add, remove or rename fields or methods, change the 319 * signatures of methods, or change inheritance. 320 * The redefinition must not change the <code>NestHost</code>, 321 * <code>NestMembers</code>, or <code>Record</code> attributes. 322 * These restrictions may be lifted in future versions. 323 * The class file bytes are not checked, verified and installed 324 * until after the transformations have been applied, if the resultant bytes are in 325 * error this method will throw an exception. 326 * 327 * <P> 328 * If this method throws an exception, no classes have been redefined. 329 * <P> 330 * This method is intended for use in instrumentation, as described in the 331 * {@linkplain Instrumentation class specification}. 332 * 333 * @param definitions array of classes to redefine with corresponding definitions; 334 * a zero-length array is allowed, in this case, this method does nothing 335 * @throws java.lang.instrument.UnmodifiableClassException if a specified class cannot be modified 336 * ({@link #isModifiableClass} would return <code>false</code>) 337 * @throws java.lang.UnsupportedOperationException if the current configuration of the JVM does not allow 338 * redefinition ({@link #isRedefineClassesSupported} is false) or the redefinition attempted 339 * to make unsupported changes 340 * @throws java.lang.ClassFormatError if the data did not contain a valid class 341 * @throws java.lang.NoClassDefFoundError if the name in the class file is not equal to the name of the class |