[jboss-cvs] JBossAS SVN: r87035 - projects/ejb3/trunk/mc-int/src/main/java/org/jboss/ejb3/mcint/metadata/plugins.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Apr 9 04:08:24 EDT 2009
Author: jaikiran
Date: 2009-04-09 04:08:24 -0400 (Thu, 09 Apr 2009)
New Revision: 87035
Modified:
projects/ejb3/trunk/mc-int/src/main/java/org/jboss/ejb3/mcint/metadata/plugins/AbstractEjbReferenceValueMetadata.java
Log:
EJBTHREE-1802 Fixed the implementation to take care of UnresolvableReferenceException while iterating through a collection of deployment units, for EJB reference resolution
Modified: projects/ejb3/trunk/mc-int/src/main/java/org/jboss/ejb3/mcint/metadata/plugins/AbstractEjbReferenceValueMetadata.java
===================================================================
--- projects/ejb3/trunk/mc-int/src/main/java/org/jboss/ejb3/mcint/metadata/plugins/AbstractEjbReferenceValueMetadata.java 2009-04-09 08:08:18 UTC (rev 87034)
+++ projects/ejb3/trunk/mc-int/src/main/java/org/jboss/ejb3/mcint/metadata/plugins/AbstractEjbReferenceValueMetadata.java 2009-04-09 08:08:24 UTC (rev 87035)
@@ -38,9 +38,9 @@
/**
* AbstractEjbReferenceValueMetadata
- *
+ *
* Describes both the requisite JNDI dependency and target Proxy for injection
- * based upon a supplied resolver, reference, and naming context. Will
+ * based upon a supplied resolver, reference, and naming context. Will
* search through all eligible EJB3 deployments available from the
* MainDeployer
*
@@ -51,7 +51,7 @@
{
// --------------------------------------------------------------------------------||
// Class Members ------------------------------------------------------------------||
- // --------------------------------------------------------------------------------||
+ // --------------------------------------------------------------------------------||
private static final long serialVersionUID = 1L;
@@ -59,7 +59,7 @@
// --------------------------------------------------------------------------------||
// Instance Members ---------------------------------------------------------------||
- // --------------------------------------------------------------------------------||
+ // --------------------------------------------------------------------------------||
private EjbReferenceResolver resolver;
@@ -89,7 +89,7 @@
// --------------------------------------------------------------------------------||
// Overridden Implementations -----------------------------------------------------||
- // --------------------------------------------------------------------------------||
+ // --------------------------------------------------------------------------------||
@Override
public Object getValue(TypeInfo info, ClassLoader cl) throws Throwable
@@ -118,7 +118,7 @@
/**
* Obtains the target JNDI name, whose value is to be injected
- *
+ *
* @return The target JNDI Name
*/
protected String getTargetJndiName()
@@ -144,13 +144,26 @@
continue;
}
- // Try to resolve
- jndiName = resolver.resolveEjb(du, reference);
+ try
+ {
+ // Try to resolve
+ jndiName = resolver.resolveEjb(du, reference);
- // If we've resolved here, we're done
- if (jndiName != null)
+ // If we've resolved here, we're done
+ if (jndiName != null)
+ {
+ break;
+ }
+
+ }
+ catch (UnresolvableReferenceException urre)
{
- break;
+ // we could not resolve in this unit, let's try the next unit
+ if (log.isTraceEnabled())
+ {
+ log.trace("EJB reference " + reference + " could not be resolved in unit " + du + " - trying next unit");
+ }
+ continue;
}
}
}
@@ -167,7 +180,7 @@
/**
* Obtains the EJB Proxy from JNDI based upon the resolved JNDI name
- *
+ *
* @return The Proxy to inject
*/
protected Object resolveEjb()
@@ -176,7 +189,7 @@
Object obj = null;
String jndiName = this.getTargetJndiName();
- // Lookup
+ // Lookup
try
{
obj = getNamingContext().lookup(jndiName);
@@ -194,7 +207,7 @@
// --------------------------------------------------------------------------------||
// Accessors / Mutators -----------------------------------------------------------||
- // --------------------------------------------------------------------------------||
+ // --------------------------------------------------------------------------------||
public EjbReference getReference()
{
More information about the jboss-cvs-commits
mailing list