test/runtime/7158988/FieldMonitor.java

Print this page

        

*** 32,48 **** */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; - import java.io.OutputStream; - import java.io.OutputStreamWriter; - import java.io.Reader; - import java.io.Writer; import java.util.Iterator; import java.util.List; import java.util.Map; import com.sun.jdi.Bootstrap; import com.sun.jdi.Field; import com.sun.jdi.ReferenceType; import com.sun.jdi.VirtualMachine; --- 32,45 ---- */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Iterator; import java.util.List; import java.util.Map; + import java.io.PrintWriter; import com.sun.jdi.Bootstrap; import com.sun.jdi.Field; import com.sun.jdi.ReferenceType; import com.sun.jdi.VirtualMachine;
*** 69,85 **** public static final String ARGUMENTS = "-Xshare:off -XX:+PrintGC"; public static void main(String[] args) throws IOException, InterruptedException { - StringBuffer sb = new StringBuffer(); - - for (int i=0; i < args.length; i++) { - sb.append(' '); - sb.append(args[i]); - } - //VirtualMachine vm = launchTarget(sb.toString()); VirtualMachine vm = launchTarget(CLASS_NAME); System.out.println("Vm launched"); // set watch field on already loaded classes List<ReferenceType> referenceTypes = vm --- 66,75 ----
*** 99,108 **** --- 89,100 ---- // Copy target's output and error to our output and error. Thread outThread = new StreamRedirectThread("out reader", process.getInputStream()); Thread errThread = new StreamRedirectThread("error reader", process.getErrorStream()); + PrintWriter vmPrinter = null; + errThread.start(); outThread.start(); vm.resume();
*** 119,128 **** --- 111,127 ---- System.out.println("ClassPrepareEvent"); ClassPrepareEvent classPrepEvent = (ClassPrepareEvent) event; ReferenceType refType = classPrepEvent .referenceType(); addFieldWatch(vm, refType); + + // inform TestPostFieldModification that it can exit. // JDK-8007710 + if (vmPrinter == null) { + vmPrinter = new PrintWriter(process.getOutputStream()); + vmPrinter.println(""); + vmPrinter.flush(); + } } else if (event instanceof ModificationWatchpointEvent) { System.out.println("sleep for 500 ms"); Thread.sleep(500); System.out.println("resume...");