You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by no...@apache.org on 2010/12/02 22:44:03 UTC
svn commit: r1041596 -
/incubator/aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/startup/Activator.java
Author: not
Date: Thu Dec 2 21:44:03 2010
New Revision: 1041596
URL: http://svn.apache.org/viewvc?rev=1041596&view=rev
Log:
ARIES-468 When an ICFB or OFB is registered when our JNDI bundle starts find the class name of the existing one for the error message.
Modified:
incubator/aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/startup/Activator.java
Modified: incubator/aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/startup/Activator.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/startup/Activator.java?rev=1041596&r1=1041595&r2=1041596&view=diff
==============================================================================
--- incubator/aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/startup/Activator.java (original)
+++ incubator/aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/startup/Activator.java Thu Dec 2 21:44:03 2010
@@ -78,7 +78,7 @@ public class Activator implements Bundle
} catch (NamingException e) {
LOGGER.log(Level.INFO, "Cannot set the InitialContextFactoryBuilder.", e);
} catch (IllegalStateException e) {
- LOGGER.log(Level.INFO, "Cannot set the InitialContextFactoryBuilder. Another builder is already installed", e);
+ LOGGER.log(Level.INFO, "Cannot set the InitialContextFactoryBuilder. Another builder " + getClassName(InitialContextFactoryBuilder.class) + " is already installed", e);
}
try {
@@ -88,7 +88,7 @@ public class Activator implements Bundle
} catch (NamingException e) {
LOGGER.log(Level.INFO, "Cannot set the ObjectFactoryBuilder.", e);
} catch (IllegalStateException e) {
- LOGGER.log(Level.INFO, "Cannot set the ObjectFactoryBuilder. Another builder is already installed", e);
+ LOGGER.log(Level.INFO, "Cannot set the ObjectFactoryBuilder. Another builder " + getClassName(InitialContextFactoryBuilder.class) + " is already installed", e);
}
context.registerService(JNDIProviderAdmin.class.getName(),
@@ -104,6 +104,22 @@ public class Activator implements Bundle
null);
}
+ private String getClassName(Class<?> expectedType)
+ {
+ try {
+ for (Field field : NamingManager.class.getDeclaredFields()) {
+ if (expectedType.equals(field.getType())) {
+ field.setAccessible(true);
+ Object icf = field.get(null);
+ return icf.getClass().getName();
+ }
+ }
+ } catch (Throwable t) {
+ // Ignore
+ }
+ return "";
+ }
+
private ServiceTracker initServiceTracker(BundleContext context,
Class<?> type, ServiceTrackerCustomizer custom)
{