[weld-commits] Weld SVN: r5500 - core/trunk/impl/src/main/java/org/jboss/weld/util/serviceProvider.
weld-commits at lists.jboss.org
weld-commits at lists.jboss.org
Mon Jan 18 18:32:57 EST 2010
Author: pete.muir at jboss.org
Date: 2010-01-18 18:32:57 -0500 (Mon, 18 Jan 2010)
New Revision: 5500
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/util/serviceProvider/DefaultServiceLoader.java
Log:
WELD-386
Modified: core/trunk/impl/src/main/java/org/jboss/weld/util/serviceProvider/DefaultServiceLoader.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/serviceProvider/DefaultServiceLoader.java 2010-01-18 23:11:00 UTC (rev 5499)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/serviceProvider/DefaultServiceLoader.java 2010-01-18 23:32:57 UTC (rev 5500)
@@ -22,7 +22,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.lang.reflect.Constructor;
import java.net.URL;
import java.util.Enumeration;
import java.util.HashSet;
@@ -31,7 +30,6 @@
import org.jboss.weld.exceptions.ForbiddenStateException;
import org.jboss.weld.exceptions.InvalidOperationException;
-import org.jboss.weld.util.reflection.Reflections;
import org.jboss.weld.util.reflection.SecureReflections;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -213,8 +211,11 @@
{
throw new ForbiddenStateException(DECLARED_EXTENSION_DOES_NOT_IMPLEMENT_EXTENSION, line);
}
- Constructor<? extends S> constructor = (Constructor<? extends S>) SecureReflections.getConstructor(serviceClass);
- S instance = constructor.newInstance();
+ Object object = SecureReflections.ensureAccessible(SecureReflections.getDeclaredConstructor(serviceClass)).newInstance();
+
+ @SuppressWarnings("unchecked")
+ S instance = (S) object;
+
providers.add(instance);
}
catch (NoClassDefFoundError e)
@@ -235,12 +236,17 @@
xLog.throwing(Level.DEBUG, e);
throw e;
}
+ catch (NoSuchMethodException e)
+ {
+ log.warn("Error loading line", line);
+ xLog.throwing(Level.DEBUG, e);
+ throw e;
+ }
}
}
catch (Exception e)
{
- // TODO Don't use exceptions for flow control!
- // try the next line
+ // try next line
}
line = reader.readLine();
More information about the weld-commits
mailing list