Occasionally in core-libs we've discussed whether or not to do a pass over the exception classes and proactively add any of four missing convention constructors per java.lang.Throwable (no-arg, string, cause, cause and string). Last time this came up, we decided a wide-scale effort wasn't worthwhile.
Prompted by some other recent work, I decided to take a quick look at the dual-approach: grep for calls to initCause in java.base and seeing which exception classes repeated were initCaused. Those exception classes are good candidates for cause-taking constructors. Two such exception classes area InvalidObjectException and InvalidClassException, along with their superclass ObjectStreamException. Please also review the CSR: https://bugs.openjdk.java.net/browse/JDK-8282697 ------------- Commit messages: - JDK-8282696: Add constructors take a cause to InvalidObjectException and InvalidClassException Changes: https://git.openjdk.java.net/jdk/pull/7711/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7711&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8282696 Stats: 92 lines in 4 files changed: 60 ins; 13 del; 19 mod Patch: https://git.openjdk.java.net/jdk/pull/7711.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/7711/head:pull/7711 PR: https://git.openjdk.java.net/jdk/pull/7711