Index: appserver/tests/embedded/maven-plugin/pom.xml
===================================================================
--- appserver/tests/embedded/maven-plugin/pom.xml (revision 64431)
+++ appserver/tests/embedded/maven-plugin/pom.xml (working copy)
@@ -234,7 +234,7 @@
javax.servlet
javax.servlet-api
- 4.0.0-b01
+ 4.0.0-b02-SNAPSHOT
provided
Index: appserver/tests/embedded/servlet_runs_admin_cmds/pom.xml
===================================================================
--- appserver/tests/embedded/servlet_runs_admin_cmds/pom.xml (revision 64431)
+++ appserver/tests/embedded/servlet_runs_admin_cmds/pom.xml (working copy)
@@ -131,7 +131,7 @@
javax.servlet
javax.servlet-api
- 4.0.0-b01
+ 4.0.0-b02-SNAPSHOT
provided
Index: appserver/tests/paas/mq-shared-service-test/mq-app/web/pom.xml
===================================================================
--- appserver/tests/paas/mq-shared-service-test/mq-app/web/pom.xml (revision 64431)
+++ appserver/tests/paas/mq-shared-service-test/mq-app/web/pom.xml (working copy)
@@ -70,7 +70,7 @@
javax.servlet
javax.servlet-api
- 4.0.0-b01
+ 4.0.0-b02-SNAPSHOT
Index: appserver/web/web-core/src/main/java/org/apache/catalina/core/DynamicServletRegistrationImpl.java
===================================================================
--- appserver/web/web-core/src/main/java/org/apache/catalina/core/DynamicServletRegistrationImpl.java (revision 64431)
+++ appserver/web/web-core/src/main/java/org/apache/catalina/core/DynamicServletRegistrationImpl.java (working copy)
@@ -67,6 +67,16 @@
super(wrapper, ctx);
}
+ @Override
+ public void setJspFile(String jspFile) {
+ if (ctx.isContextInitializedCalled()) {
+ String msg = MessageFormat.format(rb.getString(LogFacade.DYNAMIC_SERVLET_REGISTRATION_ALREADY_INIT),
+ new Object[] {"jsp-file", wrapper.getName(), ctx.getName()});
+ throw new IllegalStateException(msg);
+ }
+ wrapper.setJspFile(jspFile);
+ }
+
public void setLoadOnStartup(int loadOnStartup) {
if (ctx.isContextInitializedCalled()) {
String msg = MessageFormat.format(rb.getString(LogFacade.DYNAMIC_SERVLET_REGISTRATION_ALREADY_INIT),
Index: appserver/web/web-core/src/main/java/org/apache/catalina/core/ServletRegistrationImpl.java
===================================================================
--- appserver/web/web-core/src/main/java/org/apache/catalina/core/ServletRegistrationImpl.java (revision 64431)
+++ appserver/web/web-core/src/main/java/org/apache/catalina/core/ServletRegistrationImpl.java (working copy)
@@ -87,6 +87,10 @@
return wrapper.getJspFile();
}
+ public void setJspFile(String jspFile) {
+ wrapper.setJspFile(jspFile);
+ }
+
public boolean setInitParameter(String name, String value) {
if (ctx.isContextInitializedCalled()) {
String msg = MessageFormat.format(rb.getString(LogFacade.SERVLET_REGISTRATION_ALREADY_INIT),
Index: appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardWrapper.java
===================================================================
--- appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardWrapper.java (revision 64431)
+++ appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardWrapper.java (working copy)
@@ -1356,7 +1356,9 @@
// If this "servlet" is really a JSP file, get the right class.
String actualClass = servletClassName;
- if ((actualClass == null) && (jspFile != null)) {
+ // GLASSFISH-21666 If the actualClass is the special JspServlet class
+ if (((actualClass == null) || ServletContext.JSP_SERVLET_CLASS_REFERENCE.equals(actualClass))
+ && (jspFile != null)) {
Wrapper jspWrapper = (Wrapper)
((Context) getParent()).findChild(Constants.JSP_SERVLET_NAME);
if (jspWrapper != null) {
Index: appserver/web/web-glue/src/main/java/com/sun/enterprise/web/WebModule.java
===================================================================
--- appserver/web/web-glue/src/main/java/com/sun/enterprise/web/WebModule.java (revision 64431)
+++ appserver/web/web-glue/src/main/java/com/sun/enterprise/web/WebModule.java (working copy)
@@ -2362,20 +2362,25 @@
wbd.addWebComponentDescriptor(wcd);
String servletClassName = wrapper.getServletClassName();
if (servletClassName != null) {
- Class extends Servlet> clazz = wrapper.getServletClass();
- if (clazz == null) {
- if (wrapper.getServlet() != null) {
- clazz = wrapper.getServlet().getClass();
- } else {
- try {
- clazz = loadServletClass(servletClassName);
- } catch(Exception ex) {
- throw new IllegalArgumentException(ex);
+ // GLASSFISH-21666 If servletClassName is to be the JspServlet,
+ // and we know we are dynamic, skip setting the servletClass
+ // so the proper parameters can be passed to the JspCompiler.
+ if (!javax.servlet.ServletContext.JSP_SERVLET_CLASS_REFERENCE.equals(servletClassName)) {
+ Class extends Servlet> clazz = wrapper.getServletClass();
+ if (clazz == null) {
+ if (wrapper.getServlet() != null) {
+ clazz = wrapper.getServlet().getClass();
+ } else {
+ try {
+ clazz = loadServletClass(servletClassName);
+ } catch(Exception ex) {
+ throw new IllegalArgumentException(ex);
+ }
}
+ wrapper.setServletClass(clazz);
}
- wrapper.setServletClass(clazz);
+ processServletAnnotations(clazz, wbd, wcd, wrapper);
}
- processServletAnnotations(clazz, wbd, wcd, wrapper);
} else {
// Should never happen
throw new RuntimeException(
@@ -2474,6 +2479,12 @@
}
void postProcessAnnotations() {
+ // GLASSFISH-21666
+ // Don't bother scanning for annotations if this is a JspServlet
+ if (null != wrapper.getJspFile()) {
+ return;
+ }
+
// should not be null
Class extends Servlet> clazz = wrapper.getServletClass();
Index: nucleus/pom.xml
===================================================================
--- nucleus/pom.xml (revision 64431)
+++ nucleus/pom.xml (working copy)
@@ -144,7 +144,7 @@
4.0.1
1.0-2
1.1-rev-1
- 4.0.0-b01
+ 4.0.0-b02-SNAPSHOT
2.3.28
1.5
1.3.4