Author: rmannibucau
Date: Mon Oct  1 13:38:08 2012
New Revision: 1392321

URL: http://svn.apache.org/viewvc?rev=1392321&view=rev
Log:
TOMEE-440 arquillian classes should be injectable only when deployed within the 
container + small hack (for test) to avoid IllegalStateException (this one 
should be removed)

Modified:
    
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TestClassDiscoverer.java
    
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java

Modified: 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TestClassDiscoverer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TestClassDiscoverer.java?rev=1392321&r1=1392320&r2=1392321&view=diff
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TestClassDiscoverer.java
 (original)
+++ 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TestClassDiscoverer.java
 Mon Oct  1 13:38:08 2012
@@ -39,6 +39,12 @@ public class TestClassDiscoverer impleme
             return module;
         }
 
+        try {
+            module.getClassLoader().loadClass(name);
+        } catch (ClassNotFoundException e) {
+            return module;
+        }
+
         final EjbJar ejbJar = new EjbJar();
         final OpenejbJar openejbJar = new OpenejbJar();
         final ManagedBean bean = ejbJar.addEnterpriseBean(new 
ManagedBean(name, name, true));

Modified: 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java?rev=1392321&r1=1392320&r2=1392321&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java
 Mon Oct  1 13:38:08 2012
@@ -44,6 +44,7 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -187,11 +188,11 @@ public class TomEEWebappLoader extends W
             final Enumeration<URL> result;
 
             if (webapp.isStarted() || webapp.getParent() == null) { // we set 
a parent so if it is null webapp was detroyed
-                add(urls, app.getResources(name));
-                add(urls, webapp.getResources(name));
+                add(urls, secureGetResources(app, name));
+                add(urls, secureGetResources(webapp, name));
                 result = new ArrayEnumeration(clear(urls.values()));
             } else {
-                result = app.getResources(name);
+                result = secureGetResources(app, name);
             }
 
             if (URLClassLoaderFirst.isSlf4jQuery(name)) {
@@ -201,6 +202,14 @@ public class TomEEWebappLoader extends W
             return result;
         }
 
+        private Enumeration<URL> secureGetResources(final ClassLoader loader, 
final String name) throws IOException{
+            try {
+                return loader.getResources(name);
+            } catch (IllegalStateException ise) {
+                return Collections.enumeration(Collections.EMPTY_LIST);
+            }
+        }
+
         private List<URL> clear(Iterable<URL> urls) { // take care of 
antiJarLocking
             final List<URL> clean = new ArrayList<URL>();
             for (URL url : urls) {


Reply via email to