< prev index next >

src/jdk.jcmd/share/classes/sun/tools/jstack/JStack.java

Print this page
rev 55749 : 8227868: jinfo and jstack can fail converting UTF8 output to strings
Reviewed-by:

*** 27,39 **** import java.io.InputStream; import java.util.Collection; import com.sun.tools.attach.VirtualMachine; - import com.sun.tools.attach.VirtualMachineDescriptor; import sun.tools.attach.HotSpotVirtualMachine; import sun.tools.common.ProcessArgumentMatcher; /* * This class is the main class for the JStack utility. It parses its arguments * and decides if the command should be executed by the SA JStack tool or by * obtained the thread dump from a target process using the VM attach mechanism --- 27,39 ---- import java.io.InputStream; import java.util.Collection; import com.sun.tools.attach.VirtualMachine; import sun.tools.attach.HotSpotVirtualMachine; import sun.tools.common.ProcessArgumentMatcher; + import sun.tools.common.PrintStreamPrinter; /* * This class is the main class for the JStack utility. It parses its arguments * and decides if the command should be executed by the SA JStack tool or by * obtained the thread dump from a target process using the VM attach mechanism
*** 126,147 **** } // Cast to HotSpotVirtualMachine as this is implementation specific // method. InputStream in = ((HotSpotVirtualMachine)vm).remoteDataDump((Object[])args); - // read to EOF and just print output ! byte b[] = new byte[256]; ! int n; ! do { ! n = in.read(b); ! if (n > 0) { ! String s = new String(b, 0, n, "UTF-8"); ! System.out.print(s); ! } ! } while (n > 0); ! in.close(); vm.detach(); } private static void checkForUnsupportedOptions(String[] args) { // Check arguments for -F, -m, and non-numeric value --- 126,137 ---- } // Cast to HotSpotVirtualMachine as this is implementation specific // method. InputStream in = ((HotSpotVirtualMachine)vm).remoteDataDump((Object[])args); // read to EOF and just print output ! PrintStreamPrinter.drainUTF8(in, System.out); vm.detach(); } private static void checkForUnsupportedOptions(String[] args) { // Check arguments for -F, -m, and non-numeric value
< prev index next >