[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