提交 a3bfe44f 编写于 作者: S sla

8055677: java/lang/instrument/RedefineBigClass.sh RetransformBigClass.sh start...

8055677: java/lang/instrument/RedefineBigClass.sh RetransformBigClass.sh start failing after JDK-8055012
Summary: Write dcmd output to separate files so it does not confuse the output.
Reviewed-by: ctornqvi, mgronlun
上级 12bef3c3
...@@ -21,8 +21,12 @@ ...@@ -21,8 +21,12 @@
* questions. * questions.
*/ */
import java.io.File;
import java.io.FileWriter;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.Arrays;
import java.util.stream.Collectors;
import sun.management.ManagementFactoryHelper; import sun.management.ManagementFactoryHelper;
import com.sun.management.DiagnosticCommandMBean; import com.sun.management.DiagnosticCommandMBean;
...@@ -53,14 +57,14 @@ public class NMTHelper ...@@ -53,14 +57,14 @@ public class NMTHelper
Object[] dcmdArgs = {args}; Object[] dcmdArgs = {args};
String[] signature = {String[].class.getName()}; String[] signature = {String[].class.getName()};
try { String cmdString = cmd + " " +
System.out.print("> " + cmd + " "); Arrays.stream(args).collect(Collectors.joining(" "));
for (String s : args) { File f = new File("dcmdoutput-" + cmd + "-" + System.currentTimeMillis() + ".txt");
System.out.print(s + " "); System.out.println("Output from Dcmd '" + cmdString + "' is being written to file " + f);
} try (FileWriter fw = new FileWriter(f)) {
System.out.println(":"); fw.write("> " + cmdString + ":");
String result = (String) dcmd.invoke(cmd, dcmdArgs, signature); String result = (String) dcmd.invoke(cmd, dcmdArgs, signature);
System.out.println(result); fw.write(result);
return result; return result;
} catch(Exception ex) { } catch(Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
# @author Daniel D. Daugherty # @author Daniel D. Daugherty
# #
# @run shell MakeJAR3.sh RedefineBigClassAgent 'Can-Redefine-Classes: true' # @run shell MakeJAR3.sh RedefineBigClassAgent 'Can-Redefine-Classes: true'
# @run build BigClass RedefineBigClassApp # @run build BigClass RedefineBigClassApp NMTHelper
# @run shell/timeout=600 RedefineBigClass.sh # @run shell/timeout=600 RedefineBigClass.sh
# #
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
# @author Daniel D. Daugherty # @author Daniel D. Daugherty
# #
# @run shell MakeJAR4.sh RetransformBigClassAgent SimpleIdentityTransformer 'Can-Retransform-Classes: true' # @run shell MakeJAR4.sh RetransformBigClassAgent SimpleIdentityTransformer 'Can-Retransform-Classes: true'
# @run build BigClass RetransformBigClassApp # @run build BigClass RetransformBigClassApp NMTHelper
# @run shell/timeout=600 RetransformBigClass.sh # @run shell/timeout=600 RetransformBigClass.sh
# #
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册