no needs to store system ids to a ThreadLocal, modules not invoked in lazy-loading way anymore

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/digester/trunk@1301817 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core/src/main/java/org/apache/commons/digester3/xmlrules/FromXmlRulesModule.java b/core/src/main/java/org/apache/commons/digester3/xmlrules/FromXmlRulesModule.java
index e61d55f..af75314 100644
--- a/core/src/main/java/org/apache/commons/digester3/xmlrules/FromXmlRulesModule.java
+++ b/core/src/main/java/org/apache/commons/digester3/xmlrules/FromXmlRulesModule.java
@@ -52,7 +52,7 @@
 
     private final URL xmlRulesDtdUrl = FromXmlRulesModule.class.getResource( DIGESTER_DTD_PATH );
 
-    private final ThreadLocal<Set<String>> systemIds = new ThreadLocal<Set<String>>();
+    private final Set<String> systemIds = new HashSet<String>();
 
     private String rootPath;
 
@@ -62,19 +62,18 @@
     @Override
     protected void configure()
     {
-        if ( systemIds.get() != null )
+        if ( !systemIds.isEmpty() )
         {
             throw new IllegalStateException( "Re-entry is not allowed." );
         }
 
-        systemIds.set( new HashSet<String>() );
         try
         {
             loadRules();
         }
         finally
         {
-            systemIds.remove();
+            systemIds.clear();
         }
     }
 
@@ -96,7 +95,7 @@
         }
 
         String systemId = inputSource.getSystemId();
-        if ( systemId != null && !systemIds.get().add( systemId ) )
+        if ( systemId != null && !systemIds.add( systemId ) )
         {
             addError( "XML rules file '%s' already bound", systemId );
         }
@@ -254,7 +253,7 @@
      */
     public final Set<String> getSystemIds()
     {
-        return unmodifiableSet( systemIds.get() );
+        return unmodifiableSet( systemIds );
     }
 
 }