Author: markt
Date: Wed Oct  6 21:58:37 2010
New Revision: 1005271

URL: http://svn.apache.org/viewvc?rev=1005271&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49956
Handle case when @Resource annotation uses the full JNDI name for a resource.
Based on a patch by Gurkan Erdogdu.

Modified:
    tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java?rev=1005271&r1=1005270&r2=1005271&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Wed 
Oct  6 21:58:37 2010
@@ -454,9 +454,10 @@ public class DefaultInstanceManager impl
         Object lookedupResource;
         boolean accessibility;
 
-        if ((name != null) &&
-                (name.length() > 0)) {
-            lookedupResource = context.lookup(name);
+        String normalizedName = normalize(name);
+
+        if ((normalizedName != null) && (normalizedName.length() > 0)) {
+            lookedupResource = context.lookup(normalizedName);
         } else {
             lookedupResource =
                 context.lookup(clazz.getName() + "/" + field.getName());
@@ -495,9 +496,10 @@ public class DefaultInstanceManager impl
         Object lookedupResource;
         boolean accessibility;
 
-        if ((name != null) &&
-                (name.length() > 0)) {
-            lookedupResource = context.lookup(name);
+        String normalizedName = normalize(name);
+
+        if ((normalizedName != null) && (normalizedName.length() > 0)) {
+            lookedupResource = context.lookup(normalizedName);
         } else {
             lookedupResource = context.lookup(
                     clazz.getName() + "/" + getName(method));
@@ -520,4 +522,11 @@ public class DefaultInstanceManager impl
 
         return name.toString();
     }
+    
+    private static String normalize(String jndiName){
+        if(jndiName != null && jndiName.startsWith("java:comp/env/")){
+            return jndiName.substring(14);
+        }
+        return jndiName;
+    }
 }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1005271&r1=1005270&r2=1005271&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Oct  6 21:58:37 2010
@@ -66,6 +66,10 @@
         <bug>49952</bug>: Allow ServletContainerInitializers to add listeners 
to
         a web application. Patch provided by David Jencks. (markt)
       </fix>
+      <fix>
+        <bug>49956</bug>: Handle case when @Resource annotation uses the full
+        JNDI name for a resource. Based on a patch by Gurkan Erdogdu. (markt) 
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to