Title: [2625] branches/v2_1/openejb2/modules/core/src/java/org/openejb: don't remove a required / from an abstract name query
Revision
2625
Author
djencks
Date
2006-04-26 00:18:19 -0400 (Wed, 26 Apr 2006)

Log Message

don't remove a required / from an abstract name query

Modified Paths


Diff

Modified: branches/v2_1/openejb2/modules/core/src/java/org/openejb/ContainerIndex.java (2624 => 2625)

--- branches/v2_1/openejb2/modules/core/src/java/org/openejb/ContainerIndex.java	2006-04-26 04:17:38 UTC (rev 2624)
+++ branches/v2_1/openejb2/modules/core/src/java/org/openejb/ContainerIndex.java	2006-04-26 04:18:19 UTC (rev 2625)
@@ -206,6 +206,9 @@
             } catch (URISyntaxException e) {
                 log.error("containerId is not a valid URI: " + containerID);
                 return -1;
+            } catch (IllegalArgumentException e) {
+                //not a valid abstract name
+                return -1;
             }
             EJBContainer ejbContainer;
             try {

Modified: branches/v2_1/openejb2/modules/core/src/java/org/openejb/server/ejbd/JndiRequestHandler.java (2624 => 2625)

--- branches/v2_1/openejb2/modules/core/src/java/org/openejb/server/ejbd/JndiRequestHandler.java	2006-04-26 04:17:38 UTC (rev 2624)
+++ branches/v2_1/openejb2/modules/core/src/java/org/openejb/server/ejbd/JndiRequestHandler.java	2006-04-26 04:18:19 UTC (rev 2625)
@@ -174,12 +174,13 @@
         } else {
             int index = containerIndex.getContainerIndexByJndiName(name);
             if (index <= 0) {
-                // name not found... check if an object name was sent directly
-                index = containerIndex.getContainerIndex(name);
+                // name not found... check if an abstract name was sent directly
+                index = containerIndex.getContainerIndex(req.getRequestString());
             }
             if (index <=0) {
-                //treat it as an abstractnameQuery and try to resolve it.
-                AbstractNameQuery abstractNameQuery = new AbstractNameQuery(URI.create(name));
+                //treat it as an abstractnameQuery and try to resolve it.  Don't remove a leading /
+                URI uri = URI.create(req.getRequestString());
+                AbstractNameQuery abstractNameQuery = new AbstractNameQuery(uri);
                 Kernel kernel = KernelRegistry.getSingleKernel();
                 Set results = kernel.listGBeans(abstractNameQuery);
                 if (results.size() != 1) {
@@ -206,6 +207,7 @@
 
         }
     }
+
     private void replyWithFatalError(ObjectOutputStream out, Throwable error, String message) {
         log.error(message, error);
 

Reply via email to