You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2010/01/14 16:45:32 UTC
svn commit: r899250 -
/commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/DigesterLoader.java
Author: simonetripodi
Date: Thu Jan 14 15:45:32 2010
New Revision: 899250
URL: http://svn.apache.org/viewvc?rev=899250&view=rev
Log:
the Digester loader avoids to add erroneously rules for already analyzed classes, so can't enter in potential infinite loops
Modified:
commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/DigesterLoader.java
Modified: commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/DigesterLoader.java
URL: http://svn.apache.org/viewvc/commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/DigesterLoader.java?rev=899250&r1=899249&r2=899250&view=diff
==============================================================================
--- commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/DigesterLoader.java (original)
+++ commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/DigesterLoader.java Thu Jan 14 15:45:32 2010
@@ -119,12 +119,14 @@
public static void addRules(final Class<?> target, FromAnnotationsRuleSet ruleSet) {
if (target == Object.class
|| target.isInterface()
- || Modifier.isAbstract(target.getModifiers())) {
+ || Modifier.isAbstract(target.getModifiers())
+ || ruleSet.mapsClass(target)) {
return;
}
if (CACHED_RULESET.containsKey(target)) {
ruleSet.addRulesProviderFrom(CACHED_RULESET.get(target));
+ ruleSet.addMappedClass(target);
return;
}
@@ -148,6 +150,7 @@
}
}
+ ruleSet.addMappedClass(target);
addRules(target.getSuperclass(), ruleSet);
}