cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java
costin 2003/04/04 14:22:25 Modified:coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java Log: Avoid problems if the engine is registered after the mapper. Revision ChangesPath 1.11 +1 -0 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java Index: MapperListener.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- MapperListener.java 28 Mar 2003 14:23:59 - 1.10 +++ MapperListener.java 4 Apr 2003 22:22:25 - 1.11 @@ -264,6 +264,7 @@ throws Exception { ObjectName engineName=new ObjectName(domain + ":type=Engine"); +if( ! mBeanServer.isRegistered(engineName)) return; //if (container instanceof Engine) { String defaultHost = (String)mBeanServer.getAttribute(engineName, "defaultHost"); // This should probablt be called later - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java
remm2003/03/28 06:24:00 Modified:coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java Log: - The right key is "host", not "name", which fixes the NPEs. Revision ChangesPath 1.10 +3 -3 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java Index: MapperListener.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- MapperListener.java 25 Mar 2003 17:50:21 - 1.9 +++ MapperListener.java 28 Mar 2003 14:23:59 - 1.10 @@ -278,8 +278,8 @@ private void registerHost(ObjectName objectName) throws Exception { -String name=objectName.getKeyProperty("name"); -log.info("Register host " + name); +String name=objectName.getKeyProperty("host"); +log.debug("Register host " + name); if( name != null ) { mapper.addHost(name, objectName); } @@ -291,7 +291,7 @@ */ private void unregisterHost(ObjectName objectName) throws Exception { -String name=objectName.getKeyProperty("name"); +String name=objectName.getKeyProperty("host"); mapper.removeHost(name); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java
costin 2003/03/25 09:50:21 Modified:coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java Log: Remove unused imports. Deal with Hosts. Use JMX for hosts, remove some deps. Use a domain Revision ChangesPath 1.9 +73 -48 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java Index: MapperListener.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- MapperListener.java 17 Mar 2003 07:46:24 - 1.8 +++ MapperListener.java 25 Mar 2003 17:50:21 - 1.9 @@ -70,41 +70,32 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.apache.commons.modeler.Registry; import org.apache.tomcat.util.http.mapper.Mapper; -import org.apache.catalina.Container; -import org.apache.catalina.Context; -import org.apache.catalina.Engine; -import org.apache.catalina.Host; -import org.apache.catalina.ServerFactory; -import org.apache.catalina.Wrapper; -import org.apache.catalina.Server; -import org.apache.catalina.util.StringManager; +import org.apache.tomcat.util.res.StringManager; /** * Mapper listener. * * @author Remy Maucherat + * @author Costin Manolache */ public class MapperListener -implements NotificationListener { - - +implements NotificationListener + { private static Log log = LogFactory.getLog(MapperListener.class); // - Instance Variables - - /** * Associated mapper. */ protected Mapper mapper = null; - /** * MBean server. */ @@ -117,6 +108,8 @@ private StringManager sm = StringManager.getManager(Constants.Package); +// It should be null - and fail if not set +private String domain="*"; // --- Constructors @@ -131,6 +124,13 @@ // - Public Methods +public String getDomain() { +return domain; +} + +public void setDomain(String domain) { +this.domain = domain; +} /** * Initialize associated mapper. @@ -142,20 +142,31 @@ mBeanServer = Registry.getServer(); // FIXME -registerHost(null); +registerHosts(null); -// Query contexts -String onStr = "*:j2eeType=WebModule,*"; +// Query hosts +String onStr = domain + ":type=Host,*"; ObjectName objectName = new ObjectName(onStr); Set set = mBeanServer.queryMBeans(objectName, null); Iterator iterator = set.iterator(); while (iterator.hasNext()) { ObjectInstance oi = (ObjectInstance) iterator.next(); +registerHost(oi.getObjectName()); +} + + +// Query contexts +onStr = domain + ":j2eeType=WebModule,*"; +objectName = new ObjectName(onStr); +set = mBeanServer.queryMBeans(objectName, null); +iterator = set.iterator(); +while (iterator.hasNext()) { +ObjectInstance oi = (ObjectInstance) iterator.next(); registerContext(oi.getObjectName()); } // Query wrappers -onStr = "*:j2eeType=Servlet,*"; +onStr = domain + ":j2eeType=Servlet,*"; objectName = new ObjectName(onStr); set = mBeanServer.queryMBeans(objectName, null); iterator = set.iterator(); @@ -184,8 +195,26 @@ if (notification instanceof MBeanServerNotification) { ObjectName objectName = ((MBeanServerNotification) notification).getMBeanName(); +if( ! "*".equals( domain ) && +! domain.equals( objectName.getDomain() )) { +// A different domain - not ours +String j2eeType = objectName.getKeyProperty("j2eeType"); +if( j2eeType!=null ) +log.debug("MBean in different domain " + objectName); +return; +} +log.debug( "Handle " + objectName ); if (notification.getType().equals (MBeanServerNotification.REGISTRATION_NOTIFICATION)) { +String type=objectName.getKeyProperty("type"); +if( "Host".equals( type )) { +try { +
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java
costin 2003/03/16 23:46:24 Modified:coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java Log: Remove service from the name Revision ChangesPath 1.8 +1 -1 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java Index: MapperListener.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- MapperListener.java 8 Mar 2003 06:52:36 - 1.7 +++ MapperListener.java 17 Mar 2003 07:46:24 - 1.8 @@ -237,7 +237,7 @@ container=server.findServices()[0].getContainer(); } else { String domain="Catalina"; -ObjectName engineName=new ObjectName(domain + ":type=Engine,name=Tomcat-Standalone"); +ObjectName engineName=new ObjectName(domain + ":type=Engine"); container=(Container)mBeanServer.getAttribute(engineName, "managedResource"); } Container[] hosts = null; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java
Remy Maucherat wrote: > [EMAIL PROTECTED] wrote: >> costin 2003/03/07 22:52:36 >> >> Modified:coyote/src/java/org/apache/coyote/tomcat5 >> MapperListener.java >> Log: >> A Server is not required for non-standalone operation. In fact, Embeded >> doesn't define >>a server, and most apps embeding tomcat use this approach. >> >> All we care is an Engine. > > Hmm, yes. Well, actually, no. In that junk code (I should have put a > fixme), I'm trying to look up the hosts. I was planning to rewrite the > code using JMX and remove the coupling (the only good solution IMO). > > What do you think ? It's even better. But you can just look for contexts - using the j2eeType=WebModule to do the query ( but you'll have to parse the host and path from the name - the spec doesn't define a host attribute ). What I think is that we should clean up a bit before 5.0 is final - we have Embeded which doesn't extend or use Service or Server, and is probably used either directly or as a model by people. Engine is the only stable point ( which makes sense ), we should deprecate and make sure we don't depend too much on Service or Server ( except the standalone case ), otherwise some features will not work very well if tomcat is embeded in some other app. And we should clean up the naming conventions ASAP. We don't need 5 names ( server name, service name, engine name, jvmroute and JMX domain ) - all we need is a Servlet Engine ID - common to all of them. Costin - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java
costin 2003/03/07 22:52:36 Modified:coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java Log: A Server is not required for non-standalone operation. In fact, Embeded doesn't define a server, and most apps embeding tomcat use this approach. All we care is an Engine. Revision ChangesPath 1.7 +14 -5 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java Index: MapperListener.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- MapperListener.java 2 Mar 2003 16:11:57 - 1.6 +++ MapperListener.java 8 Mar 2003 06:52:36 - 1.7 @@ -80,6 +80,7 @@ import org.apache.catalina.Host; import org.apache.catalina.ServerFactory; import org.apache.catalina.Wrapper; +import org.apache.catalina.Server; import org.apache.catalina.util.StringManager; @@ -226,11 +227,19 @@ * Register host (FIXME). */ private void registerHost(ObjectName objectName) -throws Exception { - -Container container = -ServerFactory.getServer().findServices()[0].getContainer(); - +throws Exception +{ +Container container =null; + +Server server=ServerFactory.getServer(); +if( server!= null ) { +// a Server is not required +container=server.findServices()[0].getContainer(); +} else { +String domain="Catalina"; +ObjectName engineName=new ObjectName(domain + ":type=Engine,name=Tomcat-Standalone"); +container=(Container)mBeanServer.getAttribute(engineName, "managedResource"); +} Container[] hosts = null; String defaultHost = null; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java
remm2003/03/02 08:11:58 Modified:coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java Log: - Log register/unregister contexts and wrappers as debug. Revision ChangesPath 1.6 +7 -6 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java Index: MapperListener.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- MapperListener.java 17 Feb 2003 05:13:14 - 1.5 +++ MapperListener.java 2 Mar 2003 16:11:57 - 1.6 @@ -287,8 +287,8 @@ contextName = ""; } -log.info(sm.getString - ("mapperListener.registerContext", contextName)); +log.debug(sm.getString + ("mapperListener.registerContext", contextName)); Object context = mBeanServer.getAttribute(objectName, "mappingObject"); @@ -328,8 +328,8 @@ contextName = ""; } -log.info(sm.getString - ("mapperListener.unregisterContext", contextName)); +log.debug(sm.getString + ("mapperListener.unregisterContext", contextName)); mapper.removeContext(hostName, contextName); @@ -362,8 +362,9 @@ contextName = ""; } -log.info(sm.getString - ("mapperListener.registerWrapper", wrapperName, contextName)); +log.debug(sm.getString + ("mapperListener.registerWrapper", + wrapperName, contextName)); String[] mappings = (String[]) mBeanServer.invoke(objectName, "findMappings", null, null); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java
billbarker2003/02/16 21:13:14 Modified:coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java Log: Convert to using c-l methods. Revision ChangesPath 1.5 +4 -4 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java Index: MapperListener.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- MapperListener.java 10 Feb 2003 00:51:20 - 1.4 +++ MapperListener.java 17 Feb 2003 05:13:14 - 1.5 @@ -168,7 +168,7 @@ mBeanServer.addNotificationListener(objectName, this, null, null); } catch (Exception e) { -e.printStackTrace(); +log.warn("Error registering contexts",e); } } @@ -191,13 +191,13 @@ try { registerContext(objectName); } catch (Throwable t) { -t.printStackTrace(); +log.warn("Error registering Context " + objectName,t); } } else if (j2eeType.equals("Servlet")) { try { registerWrapper(objectName); } catch (Throwable t) { -t.printStackTrace(); +log.warn("Error registering Wrapper " + objectName,t); } } } @@ -209,7 +209,7 @@ try { unregisterContext(objectName); } catch (Throwable t) { -t.printStackTrace(); +log.warn("Error unregistering webapp " + objectName,t); } } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java
remm2003/01/30 08:45:27 Modified:coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java Log: - Handle context unregistration (wrapper unregistration seems irrelevant, and the mapper doesn't need them to be individually removed). Revision ChangesPath 1.3 +30 -2 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java Index: MapperListener.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MapperListener.java 30 Jan 2003 14:26:59 - 1.2 +++ MapperListener.java 30 Jan 2003 16:45:27 - 1.3 @@ -189,7 +189,16 @@ } } else if (notification.getType().equals (MBeanServerNotification.UNREGISTRATION_NOTIFICATION)) { - +String j2eeType = objectName.getKeyProperty("j2eeType"); +if (j2eeType != null) { +if (j2eeType.equals("WebModule")) { +try { +unregisterContext(objectName); +} catch (Throwable t) { +t.printStackTrace(); +} +} +} } } @@ -283,7 +292,26 @@ private void unregisterContext(ObjectName objectName) throws Exception { -// FIXME: Also takes care of host registration +String name = objectName.getKeyProperty("name"); + +String hostName = null; +String contextName = null; +if (name.startsWith("//")) { +name = name.substring(2); +} +int slash = name.indexOf("/"); +if (slash != -1) { +hostName = name.substring(0, slash); +contextName = name.substring(slash); +} else { +return; +} +// Special case for the root context +if (contextName.equals("/")) { +contextName = ""; +} + +mapper.removeContext(hostName, contextName); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java
remm2003/01/30 06:26:59 Modified:coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java Log: - Update mapper using JMX. Revision ChangesPath 1.2 +136 -28 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java Index: MapperListener.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/MapperListener.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MapperListener.java 29 Jan 2003 12:54:59 - 1.1 +++ MapperListener.java 30 Jan 2003 14:26:59 - 1.2 @@ -62,6 +62,7 @@ import java.util.Set; import javax.management.MBeanServer; +import javax.management.MBeanServerNotification; import javax.management.Notification; import javax.management.NotificationListener; import javax.management.ObjectInstance; @@ -96,6 +97,12 @@ protected Mapper mapper = null; +/** + * MBean server. + */ +protected MBeanServer mBeanServer = null; + + // --- Constructors @@ -117,7 +124,10 @@ try { -MBeanServer mBeanServer = Registry.getServer(); +mBeanServer = Registry.getServer(); + +// FIXME +registerHost(null); // Query contexts String onStr = "*:j2eeType=WebModule,*"; @@ -126,7 +136,7 @@ Iterator iterator = set.iterator(); while (iterator.hasNext()) { ObjectInstance oi = (ObjectInstance) iterator.next(); -String name = oi.getObjectName().getKeyProperty("name"); +registerContext(oi.getObjectName()); } // Query wrappers @@ -136,13 +146,12 @@ iterator = set.iterator(); while (iterator.hasNext()) { ObjectInstance oi = (ObjectInstance) iterator.next(); -String name = oi.getObjectName().getKeyProperty("name"); -String contextName = -oi.getObjectName().getKeyProperty("WebModule"); -registerWrapper(contextName, name); +registerWrapper(oi.getObjectName()); } -//mBeanServer.addNotificationListener(objectName, this, null, null); +onStr = "JMImplementation:type=MBeanServerDelegate"; +objectName = new ObjectName(onStr); +mBeanServer.addNotificationListener(objectName, this, null, null); } catch (Exception e) { e.printStackTrace(); @@ -157,7 +166,32 @@ public void handleNotification(Notification notification, java.lang.Object handback) { - +if (notification instanceof MBeanServerNotification) { +ObjectName objectName = +((MBeanServerNotification) notification).getMBeanName(); +if (notification.getType().equals +(MBeanServerNotification.REGISTRATION_NOTIFICATION)) { +String j2eeType = objectName.getKeyProperty("j2eeType"); +if (j2eeType != null) { +if (j2eeType.equals("WebModule")) { +try { +registerContext(objectName); +} catch (Throwable t) { +t.printStackTrace(); +} +} else if (j2eeType.equals("Servlet")) { +try { +registerWrapper(objectName); +} catch (Throwable t) { +t.printStackTrace(); +} +} +} +} else if (notification.getType().equals + (MBeanServerNotification.UNREGISTRATION_NOTIFICATION)) { + +} +} } @@ -166,14 +200,52 @@ /** - * Find context. + * Register host (FIXME). */ -private void registerWrapper(String name, String wrapperName) { +private void registerHost(ObjectName objectName) +throws Exception { +Container container = +ServerFactory.getServer().findServices()[0].getContainer(); + +Container[] hosts = null; String defaultHost = null; -Host host = null; -Context context = null; -Wrapper wrapper = null; + +if (container instanceof Engine) { +defaultHost = ((Engine) container).getDefaultHost(); +hosts = container.findChildren(); +} else if (containe
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java CoyoteConnector.java CoyoteRequest.java
remm2003/01/29 04:54:59 Modified:coyote/src/java/org/apache/coyote/tomcat5 CoyoteConnector.java CoyoteRequest.java Added: coyote/src/java/org/apache/coyote/tomcat5 MapperListener.java Log: - Use the new mapper. - This will very likely cause problems (although for now the old mapper still tries to map requests whcih have not been fully mapped). If it does, the mapper can be uncommented easily in CoyoteAdapter.postParseRequest. - Currently, the new mapper intgroduces a quite nasty B2C conversion on the URI, which will be addressed. Revision ChangesPath 1.11 +10 -2 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/CoyoteConnector.java Index: CoyoteConnector.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/CoyoteConnector.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- CoyoteConnector.java 28 Jan 2003 18:19:38 - 1.10 +++ CoyoteConnector.java 29 Jan 2003 12:54:59 - 1.11 @@ -70,8 +70,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.tomcat.util.http.mapper.Mapper; import org.apache.tomcat.util.IntrospectionUtils; +import org.apache.tomcat.util.http.mapper.Mapper; import org.apache.coyote.Adapter; import org.apache.coyote.ProtocolHandler; @@ -329,6 +329,12 @@ private Mapper mapper = new Mapper(); + /** + * Mapper listener. + */ + private MapperListener mapperListener = new MapperListener(mapper); + + // - Properties @@ -1113,6 +1119,8 @@ (sm.getString ("coyoteConnector.protocolHandlerStartFailed", e)); } + +mapperListener.init(); } 1.16 +57 -37 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/CoyoteRequest.java Index: CoyoteRequest.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat5/CoyoteRequest.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- CoyoteRequest.java28 Jan 2003 18:19:38 - 1.15 +++ CoyoteRequest.java29 Jan 2003 12:54:59 - 1.16 @@ -100,8 +100,11 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.http.FastHttpDateFormat; import org.apache.tomcat.util.http.Parameters; +import org.apache.tomcat.util.http.mapper.MappingData; +import org.apache.tomcat.util.net.SSLSupport; import org.apache.coyote.ActionCode; import org.apache.coyote.Request; @@ -124,9 +127,6 @@ import org.apache.catalina.util.StringManager; import org.apache.catalina.util.StringParser; -import org.apache.tomcat.util.http.mapper.MappingData; -import org.apache.tomcat.util.net.SSLSupport; - /** * Wrapper object for the Coyote request. * @@ -272,24 +272,6 @@ /** - * Context path. - */ -protected String contextPath = ""; - - -/** - * Path info. - */ -protected String pathInfo = null; - - -/** - * Servlet path. - */ -protected String servletPath = null; - - -/** * User principal. */ protected Principal userPrincipal = null; @@ -396,9 +378,6 @@ inputBuffer.recycle(); usingInputStream = false; usingReader = false; -contextPath = ""; -pathInfo = null; -servletPath = null; userPrincipal = null; sessionParsed = false; requestParametersParsed = false; @@ -1475,9 +1454,9 @@ public void setContextPath(String path) { if (path == null) { -this.contextPath = ""; +mappingData.contextPath.setString(""); } else { -this.contextPath = path; +mappingData.contextPath.setString(path); } } @@ -1512,7 +1491,7 @@ * @param path The path information */ public void setPathInfo(String path) { -this.pathInfo = path; +mappingData.pathInfo.setString(path); } @@ -1589,6 +1568,16 @@ /** + * Get the decoded request URI. + * + * @return the URL decoded request URI + */ +public MessageBytes getDecodedRequestURIMB() { +return (coyoteRequest.decodedURI()); +} + + +/** * Set the servlet path for this