<p dir="auto"><strong><a href="https://jira.spring.io/secure/ViewProfile.jspa?name=martin.probst" rel="nofollow">Martin Probst</a></strong> opened <strong><a href="https://jira.spring.io/browse/SPR-4630?redirect=false" rel="nofollow">SPR-4630</a></strong> and commented</p>
<p dir="auto">When a MethodInvokingJob scheduled by Quartz throws an exception, the error is logged twice, once at WARN level by the MethodInvokingJob wrapper, and once at INFO by Quartz.</p>
<p dir="auto">This is because the MethodInvokingJob catches all exceptions thrown by the invoked method (InvocationTargetExceptions), and then re-throws them as JobExecutionExceptions. Quartz apparently considers those to be "expected exceptions" that are used for scheduling purposes, and as such they are only logged as INFO.</p>
<p dir="auto">Spring's MethodInvokingJob should probably find out if the thrown exceptions was a runtime exception, and re-throw it, and simply wrap checked exceptions in an appropriate RuntimeException and rethrow them. JobExecutionExceptions are apparently reserved for other purposes.</p>
<p dir="auto">Also, you should probably not log an exception that you are re-throwing anyways, that only gives duplicate log entries, making a potential problem harder to find.</p>
<hr>
<p dir="auto"><strong>Affects:</strong> 2.0.8, 2.5.1</p>
<p dir="auto"><strong>Backported to:</strong> <a href="https://github.com/spring-projects/spring-framework/milestone/46?closed=1">2.0.9</a></p>
<p dir="auto"><strong><a href="https://jira.spring.io/secure/ViewProfile.jspa?name=costin" rel="nofollow">Costin Leau</a></strong> opened <strong><a href="https://jira.spring.io/browse/SPR-6844?redirect=false" rel="nofollow">SPR-6844</a></strong> and commented</p>
<p dir="auto">The code path for annotation-based servlet and portlet controllers has some "hot spots" that could be improved.</p>
<hr>
<p dir="auto"><strong>Affects:</strong> 3.0 GA</p>
<p dir="auto"><strong>Attachments:</strong></p>
<ul dir="auto">
<li><a href="https://jira.spring.io/secure/attachment/16200/patch.diff" rel="nofollow">patch.diff</a> (<em>6.54 kB</em>)</li>
</ul>
<p dir="auto"><strong>Issue Links:</strong></p>
<ul dir="auto">
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398108426" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/12359" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/12359/hovercard" href="https://github.com/spring-projects/spring-framework/issues/12359">#12359</a> improve the process of finding actual methods for servlet and portlet handlers (<em><strong>"is duplicated by"</strong></em>)</li>
</ul>