You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2008/04/07 06:42:46 UTC
svn commit: r645371 -
/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/exceptionpolicy/DefaultExceptionPolicyStrategy.java
Author: davsclaus
Date: Sun Apr 6 21:42:37 2008
New Revision: 645371
URL: http://svn.apache.org/viewvc?rev=645371&view=rev
Log:
CAMEL-410 Added exact match check to let the code apply as the javadoc states
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/exceptionpolicy/DefaultExceptionPolicyStrategy.java
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/exceptionpolicy/DefaultExceptionPolicyStrategy.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/exceptionpolicy/DefaultExceptionPolicyStrategy.java?rev=645371&r1=645370&r2=645371&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/exceptionpolicy/DefaultExceptionPolicyStrategy.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/exceptionpolicy/DefaultExceptionPolicyStrategy.java Sun Apr 6 21:42:37 2008
@@ -44,7 +44,7 @@
Throwable exception) {
// the goal is to find the exception with the same/closet inheritance level as the target exception being thrown
int targetLevel = getInheritanceLevel(exception.getClass());
- // candidate is the best candidate found so far
+ // candidate is the best candidate found so far to return
ExceptionType candidate = null;
// difference in inheritance level between the current candidate and the thrown exception (target level)
int candidateDiff = Integer.MAX_VALUE;
@@ -57,6 +57,14 @@
// must be instance of check to ensure that the clazz is one type of the thrown exception
if (clazz.isInstance(exception)) {
+
+ // exact match
+ if (clazz.equals(exception.getClass())) {
+ candidate = type;
+ break;
+ }
+
+ // not an exact match so find the best candidate
int level = getInheritanceLevel(clazz);
int diff = targetLevel - level;