Please stop logging *and* rethrowing exceptions at the same time in #Java. In most cases the same exception will appear twice in the logs:
catch(SomeException e) {
log.error("Error", e);
throw new OtherException(e);
}
You should either (in that order):
* just let it propagate (if unchecked)
* rethrow only (probably wrapped)
* log only (and preferably handle somehow)
* log and throw without wrapping the original (if you want to hide the original exception, e.g. for security reasons)

