8231287: JMap should do a better job of reporting exception it catches
Summary: Retrhow any caught exception, and always print exceptions before exiting
Reviewed-by: sspitsyn, phh
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/JMap.java Fri Sep 27 17:50:09 2019 -0700
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/JMap.java Sat Sep 28 12:33:34 2019 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2019, 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
@@ -182,9 +182,8 @@
hgw.write(fileName);
System.out.println("heap written to " + fileName);
return true;
- } catch (IOException | RuntimeException exp) {
- System.err.println(exp.getMessage());
- return false;
+ } catch (IOException exp) {
+ throw new RuntimeException(exp);
}
}
@@ -199,8 +198,7 @@
System.out.println("heap written to " + fileName);
return true;
} catch (IOException exp) {
- System.err.println(exp.getMessage());
- return false;
+ throw new RuntimeException(exp);
}
}
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/Tool.java Fri Sep 27 17:50:09 2019 -0700
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/Tool.java Sat Sep 28 12:33:34 2019 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -116,6 +116,8 @@
try {
returnStatus = start(args);
+ } catch (Throwable t) {
+ t.printStackTrace(System.err);
} finally {
stop();
}
--- a/test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Fri Sep 27 17:50:09 2019 -0700
+++ b/test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Sat Sep 28 12:33:34 2019 -0700
@@ -73,7 +73,6 @@
System.out.println("jhsdb jmap stderr:");
System.out.println(output.getStderr());
System.out.println("###### End of all output:");
- output.shouldNotContain("null");
output.shouldHaveExitValue(0);
} catch (Exception ex) {
throw new RuntimeException("Test ERROR " + ex, ex);