Throwable.initCause() where an exception constructor also takes a Throwable cause argument.
In this case, the initCause() call can be removed and its argument can be added to the call to the exception's constructor.
Example:
try {
process();
}
catch (RuntimeException ex) {
RuntimeException wrapper = new RuntimeException("Error while processing");
wrapper.initCause(ex); // Unnecessary call to 'Throwable.initCause()'
throw wrapper;
}
A quick-fix is available to pass the cause argument to the constructor. After the quick-fix is applied:
try {
process();
}
catch (RuntimeException ex) {
RuntimeException wrapper = new RuntimeException("Error while processing", ex);
throw wrapper;
}