yet another attempt to make the loader failing

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/digester/trunk@1301007 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core/src/test/java/org/apache/commons/digester3/binder/Digester163TestCase.java b/core/src/test/java/org/apache/commons/digester3/binder/Digester163TestCase.java
index acdb4c0..982e93d 100644
--- a/core/src/test/java/org/apache/commons/digester3/binder/Digester163TestCase.java
+++ b/core/src/test/java/org/apache/commons/digester3/binder/Digester163TestCase.java
@@ -34,7 +34,6 @@
 import org.junit.Before;
 import org.junit.Test;
 
-
 /**
  * Test.
  */
@@ -43,10 +42,10 @@
 
     public static final int MAX_THREADS = 4;
 
-    private DigesterLoader loader;
+    private DigesterLoader loader = null;
 
     @Before
-    public void setUp()
+    public void before()
     {
         loader = newLoader( new FromXmlRulesModule()
         {
@@ -64,10 +63,12 @@
     public void test()
         throws InterruptedException
     {
-        ThreadPoolExecutor executor = new ThreadPoolExecutor( MAX_THREADS, MAX_THREADS,
+        ThreadPoolExecutor executor = new ThreadPoolExecutor( MAX_THREADS,
+                                                              MAX_THREADS,
                                                               Long.MAX_VALUE,
                                                               TimeUnit.NANOSECONDS,
                                                               new LinkedBlockingQueue<Runnable>() );
+        final LinkedBlockingQueue<Exception> exceptions = new LinkedBlockingQueue<Exception>();
         for ( int i = 0; i < MAX_THREADS * 2; i++ )
         {
             executor.submit( new Runnable()
@@ -75,17 +76,19 @@
 
                 public void run()
                 {
-                    Digester dig = loader.newDigester();
+
+                    Digester dig = null;
                     InputStream in = null;
                     try
                     {
-                        in = this.getClass().getClassLoader().getResourceAsStream( "test.xml" );
+                        dig = loader.newDigester();
+                        in = Digester163TestCase.class.getResourceAsStream( "test.xml" );
                         Entity et = dig.parse( in );
                         assertEquals( "Author 1", et.getAuthor() );
                     }
                     catch ( Exception e )
                     {
-                        fail( e.getMessage() );
+                        exceptions.add( e );
                     }
                     finally
                     {
@@ -101,6 +104,7 @@
                             }
                         }
                     }
+
                 }
             } );
         }
@@ -116,6 +120,13 @@
                 break;
             }
         }
-    }
 
+        Exception e = exceptions.poll();
+        if ( e != null )
+        {
+            e.printStackTrace();
+            fail( "Throwable caught -> " + e.getMessage() != null ? e.getMessage() : "" );
+        }
+
+    }
 }
diff --git a/core/src/test/resources/org/apache/commons/digester3/binder/test.xml b/core/src/test/resources/org/apache/commons/digester3/binder/test.xml
index ef5cc34..8d8e84e 100644
--- a/core/src/test/resources/org/apache/commons/digester3/binder/test.xml
+++ b/core/src/test/resources/org/apache/commons/digester3/binder/test.xml
@@ -15,12 +15,10 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<root>
-  <container>
-    <header>
-      <authors>
-        <author>Author 1</author>
-      </authors>
-    </header>
-  </container>
-</root>
+<container>
+  <header>
+    <authors>
+      <author>Author 1</author>
+    </authors>
+  </header>
+</container>