You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/01/23 11:57:27 UTC
svn commit: r1437337 - in /tomcat/trunk: java/org/apache/catalina/core/
test/org/apache/catalina/startup/ test/webapp-3.0-fragments/WEB-INF/
Author: markt
Date: Wed Jan 23 10:57:27 2013
New Revision: 1437337
URL: http://svn.apache.org/viewvc?rev=1437337&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54450
Correctly handle resource injection when part of the servlet properties uses @Resource and the other uses 'injection-target'
Includes test case
Patch provided by Violeta Georgieva.
Modified:
tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java
tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java
tomcat/trunk/test/org/apache/catalina/startup/TesterServletWithAnnotations.java
tomcat/trunk/test/webapp-3.0-fragments/WEB-INF/web.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=1437337&r1=1437336&r2=1437337&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Wed Jan 23 10:57:27 2013
@@ -348,9 +348,9 @@ public class DefaultInstanceManager impl
annotations.add(new AnnotationCacheEntry(
method.getName(),
method.getParameterTypes(),
- injections.get(method.getName()),
+ injections.get(fieldName),
AnnotationCacheEntryType.SETTER));
- break;
+ continue;
}
}
if (method.isAnnotationPresent(Resource.class)) {
Modified: tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java?rev=1437337&r1=1437336&r2=1437337&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java Wed Jan 23 10:57:27 2013
@@ -127,7 +127,7 @@ public class TestContextConfig extends T
}
@Test
- public void testBug54448() throws Exception {
+ public void testBug54448and54450() throws Exception {
Tomcat tomcat = getTomcatInstance();
File appDir = new File("test/webapp-3.0-fragments");
@@ -142,7 +142,8 @@ public class TestContextConfig extends T
tomcat.start();
- assertPageContains("/test/testServlet", "envEntry: 1");
+ assertPageContains("/test/testServlet",
+ "envEntry1: 1 envEntry2: 2 envEntry3: 33 envEntry4: 4");
}
private static class CustomDefaultServletSCI
Modified: tomcat/trunk/test/org/apache/catalina/startup/TesterServletWithAnnotations.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TesterServletWithAnnotations.java?rev=1437337&r1=1437336&r2=1437337&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TesterServletWithAnnotations.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TesterServletWithAnnotations.java Wed Jan 23 10:57:27 2013
@@ -14,6 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.apache.catalina.startup;
import java.io.IOException;
@@ -29,12 +30,35 @@ public class TesterServletWithAnnotation
private static final long serialVersionUID = 1L;
@Resource(mappedName = "1")
- private int envEntry;
+ private int envEntry1;
+
+ private int envEntry2;
+
+ private int envEntry3;
+
+ private int envEntry4;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/plain");
- resp.getWriter().print("envEntry: " + envEntry);
+ resp.getWriter().print("envEntry1: " + envEntry1);
+ resp.getWriter().print(" envEntry2: " + envEntry2);
+ resp.getWriter().print(" envEntry3: " + envEntry3);
+ resp.getWriter().print(" envEntry4: " + envEntry4);
+ }
+
+ public void setEnvEntry2(int envEntry2) {
+ this.envEntry2 = envEntry2;
+ }
+
+ @Resource(mappedName = "3")
+ public void setEnvEntry3(int envEntry3) {
+ this.envEntry3 = envEntry3;
+ }
+
+ @Resource(mappedName = "4")
+ public void setEnvEntry4(int envEntry4) {
+ this.envEntry4 = envEntry4;
}
-}
+}
\ No newline at end of file
Modified: tomcat/trunk/test/webapp-3.0-fragments/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/webapp-3.0-fragments/WEB-INF/web.xml?rev=1437337&r1=1437336&r2=1437337&view=diff
==============================================================================
--- tomcat/trunk/test/webapp-3.0-fragments/WEB-INF/web.xml (original)
+++ tomcat/trunk/test/webapp-3.0-fragments/WEB-INF/web.xml Wed Jan 23 10:57:27 2013
@@ -57,4 +57,23 @@
<lifecycle-callback-class>org.apache.catalina.startup.TesterServletWithLifeCycleMethods</lifecycle-callback-class>
<lifecycle-callback-method>preDestroy1</lifecycle-callback-method>
</pre-destroy>
+
+ <env-entry>
+ <env-entry-name>envEntry2</env-entry-name>
+ <env-entry-type>java.lang.Integer</env-entry-type>
+ <env-entry-value>2</env-entry-value>
+ <injection-target>
+ <injection-target-class>org.apache.catalina.startup.TesterServletWithAnnotations</injection-target-class>
+ <injection-target-name>envEntry2</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <env-entry>
+ <env-entry-name>envEntry3</env-entry-name>
+ <env-entry-type>java.lang.Integer</env-entry-type>
+ <env-entry-value>33</env-entry-value>
+ <injection-target>
+ <injection-target-class>org.apache.catalina.startup.TesterServletWithAnnotations</injection-target-class>
+ <injection-target-name>envEntry3</injection-target-name>
+ </injection-target>
+ </env-entry>
</web-app>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org