[jboss-cvs] JBossAS SVN: r76954 - projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 11 15:28:19 EDT 2008


Author: ALRubinger
Date: 2008-08-11 15:28:19 -0400 (Mon, 11 Aug 2008)
New Revision: 76954

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
Log:
[EJBTHREE-1457] Proper checking that business interface is passed to SessionContext.getBusinessObject

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java	2008-08-11 19:24:04 UTC (rev 76953)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java	2008-08-11 19:28:19 UTC (rev 76954)
@@ -24,8 +24,10 @@
 
 import java.io.Serializable;
 import java.lang.reflect.Method;
+import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.Map;
+import java.util.Set;
 
 import javax.ejb.EJBContext;
 import javax.ejb.EJBException;
@@ -72,7 +74,6 @@
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
 import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
 import org.jboss.proxy.ejb.handle.HomeHandleImpl;
-import org.jboss.util.NotImplementedException;
 import org.jboss.wsf.spi.SPIProvider;
 import org.jboss.wsf.spi.SPIProviderResolver;
 import org.jboss.wsf.spi.invocation.ExtensibleWebServiceContext;
@@ -680,9 +681,22 @@
       
       try
       {
-         String jndiName = ProxyFactoryHelper.getJndiName(this, intf);
-         if (jndiName == null) throw new IllegalStateException("Cannot find BusinessObject for interface: " + intf.getName());
-         return getInitialContext().lookup(ProxyFactoryHelper.getJndiName(this, intf));
+         
+         /*
+          * Get all business interfaces
+          */
+         Set<String> businessInterfaceNames = new HashSet<String>();
+         JBossSessionBeanMetaData smd= (JBossSessionBeanMetaData)this.getXml();
+         businessInterfaceNames.addAll(smd.getBusinessRemotes());
+         businessInterfaceNames.addAll(smd.getBusinessLocals());
+         
+         String interfaceName = intf.getName();
+         
+         if (!businessInterfaceNames.contains(interfaceName))
+            throw new IllegalStateException("Cannot find BusinessObject for interface: " + interfaceName);
+         
+         String jndiName = this.getXml().determineResolvedJndiName(interfaceName);
+         return getInitialContext().lookup(jndiName);
       }
       catch (NamingException e)
       {




More information about the jboss-cvs-commits mailing list