DO NOT REPLY [Bug 50441] New: It is not possible to have multiple instacnes of same docBase inside appBase
https://issues.apache.org/bugzilla/show_bug.cgi?id=50441 Summary: It is not possible to have multiple instacnes of same docBase inside appBase Product: Tomcat 6 Version: unspecified Platform: All OS/Version: All Status: NEW Severity: major Priority: P2 Component: Catalina AssignedTo: dev@tomcat.apache.org ReportedBy: ognjen.mi...@asw.eu When I set docBase in context tag to relative path it is not possible to have more then one Context with same docBase. For example We have two XML files for our application in folder Catalina/localhost. iis.xml and iisstampa.xml. Both of them have the same docBase="iis". appBase is set to webbaps in Host tag in server.xml. iis.xml is loaded corectly, but iisstampa.xml is not. This is because inside of method org.apache.catalina.startup.HostConfig.deployDescriptor there is part that recognizes that {tomcat_home}/webapps/iis folder is inside of appBase an docBase attribute is ignored by calling context.setDocBase(null). This causes Tomcat looks for folder iisstampa inside of appbase which of course does not exist. If we put this context and docBase outside appBase everything works corectly. But described situation is in conflict with documentation because it is not possible to have multiple instances of same docBase if the docBase is inside appBase. This behavour is introduced in revision SVN 303926 of Tomcat 5.5 by remm (Remy Maucherat) as a solution of bug 34840 to recognize if the context path is external. This bug exists on Tomcat 7 also. We experinced this bug during migration from tomcat 5.5.4 to Tomcat 6 so this is reason reporting in Tomcat 6 section. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Tomcat Wiki] Update of "PoweredBy" by Dom Sas
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification. The "PoweredBy" page has been changed by Dom Sas. http://wiki.apache.org/tomcat/PoweredBy?action=diff&rev1=277&rev2=278 -- === Institute for Tourism and Geographic Information Systems === [[http://www.itgis.com|Institute for Tourism and Geographic Information Systems]] - A consulting company; all of our projects are built on Tomcat. + + === Farmacia popular === + [[http://www.farmaciapro.com/|es una píldora para el tratamiento de la pérdida de cabello en la coronilla en hombres (parte superior de la cabeza) y el área anterior del mediados del cuero cabelludo (frente a mitad de la cabeza). === iPoint Portal === {{http://www.ipointportal.com/iPoint/schemes/c2b2/logo1.gif}} [[http://www.ipointportal.com|The Open Source Collaborative Portal]] - iPoint Portal is an Open Source Collaborative Portal which is compatible with JSR168 and runs on Tomcat. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Tomcat Wiki] Update of "PoweredBy" by Dom Sas
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification. The "PoweredBy" page has been changed by Dom Sas. http://wiki.apache.org/tomcat/PoweredBy?action=diff&rev1=278&rev2=279 -- [[http://www.itgis.com|Institute for Tourism and Geographic Information Systems]] - A consulting company; all of our projects are built on Tomcat. === Farmacia popular === - [[http://www.farmaciapro.com/|es una píldora para el tratamiento de la pérdida de cabello en la coronilla en hombres (parte superior de la cabeza) y el área anterior del mediados del cuero cabelludo (frente a mitad de la cabeza). + [[http://www.farmaciapro.com|farmacia online]] es una píldora para el tratamiento de la pérdida de cabello en la coronilla en hombres (parte superior de la cabeza) y el área anterior del mediados del cuero cabelludo (frente a mitad de la cabeza). === iPoint Portal === {{http://www.ipointportal.com/iPoint/schemes/c2b2/logo1.gif}} [[http://www.ipointportal.com|The Open Source Collaborative Portal]] - iPoint Portal is an Open Source Collaborative Portal which is compatible with JSR168 and runs on Tomcat. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50326] Problem with DBCP 1.3 /jdk 6 and oracle spatial
https://issues.apache.org/bugzilla/show_bug.cgi?id=50326 Nils Hildebrand changed: What|Removed |Added Status|REOPENED|NEEDINFO --- Comment #6 from Nils Hildebrand 2010-12-09 05:25:47 EST --- Hi, this seems to be a DB-access-right related problem The big question is now why the problem did not exist prior to dbcp 1.3. So with regards to Tomcat the status of this bug-report can be set to "irrelevant/closed" or something like that. I will track this problem further in DBCP (see URL). Kind regards Nils -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50441] It is not possible to have multiple instacnes of same docBase inside appBase
https://issues.apache.org/bugzilla/show_bug.cgi?id=50441 Mark Thomas changed: What|Removed |Added Status|NEW |RESOLVED Resolution||INVALID --- Comment #1 from Mark Thomas 2010-12-09 05:25:53 EST --- This is working as designed. If you need further assistance, please use the users mailing list. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50326] Problem with DBCP 1.3 /jdk 6 and oracle spatial
https://issues.apache.org/bugzilla/show_bug.cgi?id=50326 Rainer Jung changed: What|Removed |Added Status|NEEDINFO|RESOLVED Resolution||REMIND --- Comment #7 from Rainer Jung 2010-12-09 05:31:03 EST --- Thanks for keeping us informed. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50441] It is not possible to have multiple instacnes of same docBase inside appBase
https://issues.apache.org/bugzilla/show_bug.cgi?id=50441 Ognjen Milic changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|INVALID | --- Comment #2 from Ognjen Milic 2010-12-09 05:49:54 EST --- (In reply to comment #1) > This is working as designed. If you need further assistance, please use the > users mailing list. But in documentation for Context tag it is written The Document Base (also known as the Context Root) directory for this web application, or the pathname to the web application archive file (if this web application is being executed directly from the WAR file). You may specify an absolute pathname for this directory or WAR file, or a pathname that is relative to the appBase directory of the owning Host. If I have only one xml file in example above called iisstampa.xml with docBase=iis. Message A docBase /home/programi/tomcat/webapps/iis inside the host appBase has been specified, and will be ignored. Then Tomcat looks for folder iisstampa under webapps folder which does not exist and the context is not loaded. So there is no possibility to have docBase set relative to appBase because every relative path is ignored. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50441] It is not possible to have multiple instacnes of same docBase inside appBase
https://issues.apache.org/bugzilla/show_bug.cgi?id=50441 Mark Thomas changed: What|Removed |Added Severity|major |enhancement --- Comment #3 from Mark Thomas 2010-12-09 06:22:09 EST --- Patches to the documentation are welcome. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50442] New: Replacing # with / does not work
https://issues.apache.org/bugzilla/show_bug.cgi?id=50442 Summary: Replacing # with / does not work Product: Tomcat 6 Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Catalina AssignedTo: dev@tomcat.apache.org ReportedBy: ognjen.mi...@asw.eu We have need to have our docBase not to be directly under appBase but like this ${TOMCAT_HOME}/webapps/iis_root/iis. We call context XML file iis_root#iis.xml as it is advised in documentation but then we get this error. java.lang.IllegalArgumentException: Document base /home/dev-erp/tomcat/webapps/iis_root#iis does not exist or is not a readable directory at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:142) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4249) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4418) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) at org.apache.catalina.core.StandardService.start(StandardService.java:519) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:581) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50360] Server socket still bound after Embedded.stop is invoked
https://issues.apache.org/bugzilla/show_bug.cgi?id=50360 --- Comment #10 from Mark Thomas 2010-12-09 06:32:46 EST --- Yep. Working on it (well the clean up prior to implementing the fix) now. A bindOnInit param will be added to the connector that defaults to true. By default the connector will bind/unbind on init()/destroy(). Set it to false and the connector will bind/unbind on start)_/stop() I could have hacked this in fairly quickly but the connector/protocol/endpoint code is long overdue a clean-up and this issue was the trigger for getting that done. Connector and protocol are cleaned up. Starting on the endpoints now. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50442] Replacing # with / does not work
https://issues.apache.org/bugzilla/show_bug.cgi?id=50442 Mark Thomas changed: What|Removed |Added Status|NEW |RESOLVED Resolution||INVALID --- Comment #1 from Mark Thomas 2010-12-09 06:37:04 EST --- A docBase of ${TOMCAT_HOME}/webapps/iis_root/iis is not supported. For further assistance please use the users mailing list. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
typo in catalina.sh
Hi to all, I think there is a typo in catalina.sh : -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \ Shouldn't it be : -Djava.security.policy="$CATALINA_BASE"/conf/catalina.policy \ Regards - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: typo in catalina.sh
On 09/12/2010 13:37, Henri Gomez wrote: > Hi to all, > > I think there is a typo in catalina.sh : > > -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \ > > Shouldn't it be : > > -Djava.security.policy="$CATALINA_BASE"/conf/catalina.policy \ No. == is correct. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: typo in catalina.sh
2010/12/9 Mark Thomas : > On 09/12/2010 13:37, Henri Gomez wrote: >> Hi to all, >> >> I think there is a typo in catalina.sh : >> >> -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \ >> >> Shouldn't it be : >> >> -Djava.security.policy="$CATALINA_BASE"/conf/catalina.policy \ > > No. == is correct. exact : "(note the double equals) then just the specified policy file will be used; all the ones indicated in the security properties file will be ignored." my bad - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1043983 - in /tomcat/trunk: java/org/apache/catalina/connector/Connector.java java/org/apache/catalina/connector/LocalStrings.properties java/org/apache/catalina/connector/Request.java we
Author: schultz Date: Thu Dec 9 14:35:28 2010 New Revision: 1043983 URL: http://svn.apache.org/viewvc?rev=1043983&view=rev Log: - Fixed brace and paren placement - Changed Connector.isParseBodyMethod from public -> protected - Relaxed language claiming that use of parseBodyMethods may "violate" the servlet spec - Moved error message to LocalStrings.properties (Translations requested) Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/connector/Request.java tomcat/trunk/webapps/docs/config/ajp.xml tomcat/trunk/webapps/docs/config/http.xml Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Connector.java?rev=1043983&r1=1043982&r2=1043983&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/Connector.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Connector.java Thu Dec 9 14:35:28 2010 @@ -188,7 +188,7 @@ public class Connector extends Lifecycle protected String parseBodyMethods = "POST"; -protected HashSet parseBodyMethodsSet; +protected HashSet parseBodyMethodsSet; /** @@ -455,28 +455,31 @@ public class Connector extends Lifecycle } -public String getParseBodyMethods() -{ -return (this.parseBodyMethods); +public String getParseBodyMethods() { + +return this.parseBodyMethods; + } -public void setParseBodyMethods(String methods) -{ -HashSet methodSet = new HashSet(); +public void setParseBodyMethods(String methods) { + +HashSet methodSet = new HashSet(); -if(null != methods) +if( null != methods ) methodSet.addAll(Arrays.asList(methods.split("\\s*,\\s*"))); -if(methodSet.contains("TRACE")) -throw new IllegalArgumentException("TRACE method MUST NOT include an entity (see RFC 2616 Section 9.6)"); +if( methodSet.contains("TRACE") ) +throw new IllegalArgumentException(sm.getString("coyoteConnector.parseBodyMethodNoTrace")); this.parseBodyMethods = methods; this.parseBodyMethodsSet = methodSet; + } -public boolean isParseBodyMethod(String method) -{ +protected boolean isParseBodyMethod(String method) { + return parseBodyMethodsSet.contains(method); + } /** @@ -896,7 +899,7 @@ public class Connector extends Lifecycle protocolHandler.setAdapter(adapter); // Make sure parseBodyMethodsSet has a default -if(null == parseBodyMethodsSet) +if( null == parseBodyMethodsSet ) setParseBodyMethods(getParseBodyMethods()); try { Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties?rev=1043983&r1=1043982&r2=1043983&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties Thu Dec 9 14:35:28 2010 @@ -27,6 +27,7 @@ coyoteConnector.protocolHandlerPauseFail coyoteConnector.protocolHandlerResumeFailed=Protocol handler resume failed coyoteConnector.MapperRegistration=register Mapper: {0} coyoteConnector.protocolUnregistrationFailed=Protocol handler stop failed +coyoteConnector.parseBodyMethodNoTrace=TRACE method MUST NOT include an entity (see RFC 2616 Section 9.6) # # CoyoteAdapter Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1043983&r1=1043982&r2=1043983&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Thu Dec 9 14:35:28 2010 @@ -2798,7 +2798,7 @@ public class Request if (usingInputStream || usingReader) return; -if(!getConnector().isParseBodyMethod(getMethod())) +if( !getConnector().isParseBodyMethod(getMethod()) ) return; String contentType = getContentType(); Modified: tomcat/trunk/webapps/docs/config/ajp.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/ajp.xml?rev=1043983&r1=1043982&r2=1043983&view=diff == --- tomcat/trunk/webapps/docs/config/ajp.xml (original) +++ tomcat/trunk/webapps/docs/config/ajp.xml Thu Dec 9 14:35:28 2010 @@ -121,7 +121,8 @@ to POST. This is use
DO NOT REPLY [Bug 50442] Replacing # with / does not work
https://issues.apache.org/bugzilla/show_bug.cgi?id=50442 Ognjen Milic changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|INVALID | --- Comment #2 from Ognjen Milic 2010-12-09 10:06:13 EST --- In tomcat docs about context definition it says. Context elements may be explicitly defined: . --- * In individual files (with a ".xml" extension) in the $CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The name of the file (less the .xml extension) will be used as the context path. Multi-level context paths may be defined using #, e.g. foo#bar.xml for a context path of /foo/bar. The default web application may be defined by using a file called ROOT.xml. --- . So we concluded that iis_root#iis is allowed context path for iis_root/iis. Is the documentation wrong? -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50442] Replacing # with / does not work
https://issues.apache.org/bugzilla/show_bug.cgi?id=50442 Chuck Caldarale changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution||INVALID --- Comment #3 from Chuck Caldarale 2010-12-09 10:16:41 EST --- (In reply to comment #2) > So we concluded that iis_root#iis is allowed context path for iis_root/iis. Is > the documentation wrong? You're confusing context path (the URL) with the file system path (docBase). For a context path of iis_root/iis, the file system path must be iis_root#iis if the webapp is deployed under the appBase directory. - Chuck -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044058 - in /tomcat/trunk: java/org/apache/catalina/connector/ java/org/apache/coyote/ java/org/apache/coyote/ajp/ java/org/apache/coyote/http11/ java/org/apache/tomcat/util/net/ java/or
Author: markt Date: Thu Dec 9 18:10:38 2010 New Revision: 1044058 URL: http://svn.apache.org/viewvc?rev=1044058&view=rev Log: Re-factoring in support of https://issues.apache.org/bugzilla/show_bug.cgi?id=50360 Move ad-hoc attribute handling from the ProtocolHandler to the Endpoint and expose the Endpoint to ServerSocketFactory objects so they can retrieve additional configuration if required. All default components now use explicit configuration rather than relying on the ad-hoc mechanism. Ensure the hooks for alternative SSL implementations are in place (were partially removed). Remove the hooks for alternative ServerSocketFactory implementations (had been hard-coded / half implemented for some time). Make the sslEnabledProtocols attribute work with BIO as well. Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java tomcat/trunk/java/org/apache/coyote/http11/Http11Protocol.java tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/DefaultServerSocketFactory.java tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SSLImplementation.java tomcat/trunk/java/org/apache/tomcat/util/net/ServerSocketFactory.java tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEFactory.java tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEImplementation.java tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java tomcat/trunk/webapps/docs/config/http.xml Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Connector.java?rev=1044058&r1=1044057&r2=1044058&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/Connector.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Connector.java Thu Dec 9 18:10:38 2010 @@ -249,7 +249,6 @@ public class Connector extends Lifecycle replacements.put("connectionTimeout", "soTimeout"); replacements.put("randomFile", "randomfile"); replacements.put("rootFile", "rootfile"); - replacements.put("sslProtocols", "protocols"); } Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java?rev=1044058&r1=1044057&r2=1044058&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java Thu Dec 9 18:10:38 2010 @@ -17,8 +17,6 @@ package org.apache.coyote; import java.net.InetAddress; -import java.util.HashMap; -import java.util.Iterator; import java.util.concurrent.Executor; import javax.management.MBeanRegistration; @@ -65,55 +63,6 @@ public abstract class AbstractProtocolHa // --- Generic property handling /** - * Attributes provide a way for configuration to be passed to sub-components - * without the {...@link ProtocolHandler} being aware of the properties - * available on those sub-components. One example of such a sub-component is - * the {...@link org.apache.tomcat.util.net.ServerSocketFactory}. - */ -protected HashMap attributes = -new HashMap(); - - -/** - * Generic property setter called when a property for which a specific - * setter already exists within the {...@link ProtocolHandler} needs to be - * made available to sub-components. The specific setter will call this - * method to populate the attributes. - */ -@Override -public void setAttribute(String name, Object value) { -if (getLog().isTraceEnabled()) { -getLog().trace(sm.getString("abstractProtocolHandler.setAttribute", -name, value)); -} -attributes.put(name, value); -} - - -/** - * Used by sub-components to retrieve configuration information. - */ -@Override -public Object getAttribute(String key) { -Object value = attributes.get(key); -if (getLog().isTraceEnabled()) { -getLog().trace(sm.getString("abstractProtocolHandler.getAttribute", -key, value)); -} -
svn commit: r1044083 - /tomcat/trunk/java/org/apache/catalina/core/ThreadLocalLeakPreventionListener.java
Author: slaurent Date: Thu Dec 9 18:55:04 2010 New Revision: 1044083 URL: http://svn.apache.org/viewvc?rev=1044083&view=rev Log: bug 49159: Improve ThreadLocal memory leak clean-up https://issues.apache.org/bugzilla/show_bug.cgi?id=49159 some formatting after discussion over the list (operator at the end of line, unnecessary cast) Modified: tomcat/trunk/java/org/apache/catalina/core/ThreadLocalLeakPreventionListener.java Modified: tomcat/trunk/java/org/apache/catalina/core/ThreadLocalLeakPreventionListener.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ThreadLocalLeakPreventionListener.java?rev=1044083&r1=1044082&r2=1044083&view=diff == --- tomcat/trunk/java/org/apache/catalina/core/ThreadLocalLeakPreventionListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ThreadLocalLeakPreventionListener.java Thu Dec 9 18:55:04 2010 @@ -71,8 +71,8 @@ public class ThreadLocalLeakPreventionLi public void lifecycleEvent(LifecycleEvent event) { try { Lifecycle lifecycle = event.getLifecycle(); -if (Lifecycle.AFTER_START_EVENT.equals(event.getType()) -&& lifecycle instanceof Server) { +if (Lifecycle.AFTER_START_EVENT.equals(event.getType()) && +lifecycle instanceof Server) { // when the server starts, we register ourself as listener for // all context // as well as container event listener so that we know when new @@ -81,8 +81,8 @@ public class ThreadLocalLeakPreventionLi registerListenersForServer(server); } -if (Lifecycle.AFTER_STOP_EVENT.equals(event.getType()) -&& lifecycle instanceof Context) { +if (Lifecycle.AFTER_STOP_EVENT.equals(event.getType()) && +lifecycle instanceof Context) { stopIdleThreads((Context) lifecycle); } } catch (Exception e) { @@ -145,8 +145,8 @@ public class ThreadLocalLeakPreventionLi protected void processContainerAddChild(Container parent, Container child) { if (log.isDebugEnabled()) -log.debug("Process addChild[parent=" + parent + ",child=" + child -+ "]"); +log.debug("Process addChild[parent=" + parent + ",child=" + child + +"]"); if (child instanceof Context) { registerContextListener((Context) child); @@ -158,22 +158,18 @@ public class ThreadLocalLeakPreventionLi } -protected void processContainerRemoveChild(Container parent, +protected void processContainerRemoveChild(Container parent, Container child) { if (log.isDebugEnabled()) -log.debug("Process removeChild[parent=" + parent + ",child=" -+ child + "]"); +log.debug("Process removeChild[parent=" + parent + ",child=" + +child + "]"); if (child instanceof Context) { Context context = (Context) child; context.removeLifecycleListener(this); -} else if (child instanceof Host) { -Host host = (Host) child; -host.removeContainerListener(this); -} else if (child instanceof Engine) { -Engine engine = (Engine) child; -engine.removeContainerListener(this); +} else if (child instanceof Host || child instanceof Engine) { +child.removeContainerListener(this); } } @@ -186,9 +182,10 @@ public class ThreadLocalLeakPreventionLi *of its parent Service. */ private void stopIdleThreads(Context context) { -if (context instanceof StandardContext && +if (context instanceof StandardContext && !((StandardContext) context).getRenewThreadsWhenStoppingContext()) { -log.debug("Not renewing threads when the context is stopping, it is configured not to do it."); +log.debug("Not renewing threads when the context is stopping, " ++ "it is configured not to do it."); return; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044088 - /tomcat/trunk/
Author: slaurent Date: Thu Dec 9 18:59:14 2010 New Revision: 1044088 URL: http://svn.apache.org/viewvc?rev=1044088&view=rev Log: ignore work and logs directories as discussed on dev list Modified: tomcat/trunk/ (props changed) Propchange: tomcat/trunk/ -- --- svn:ignore (original) +++ svn:ignore Thu Dec 9 18:59:14 2010 @@ -1,3 +1,5 @@ .* output build.properties +work +logs - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044091 - /tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java
Author: markt Date: Thu Dec 9 19:02:01 2010 New Revision: 1044091 URL: http://svn.apache.org/viewvc?rev=1044091&view=rev Log: Re-factoring in support of https://issues.apache.org/bugzilla/show_bug.cgi?id=50360 Log the right message at the right point Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java?rev=1044091&r1=1044090&r2=1044091&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java Thu Dec 9 19:02:01 2010 @@ -392,16 +392,16 @@ public abstract class AbstractProtocolHa @Override public void stop() throws Exception { +if(getLog().isInfoEnabled()) +getLog().info(sm.getString("abstractProtocolHandler.stop", +getName())); try { endpoint.stop(); } catch (Exception ex) { -getLog().error(sm.getString("abstractProtocolHandler.stop", +getLog().error(sm.getString("abstractProtocolHandler.stopError", getName()), ex); throw ex; } -if(getLog().isInfoEnabled()) -getLog().info(sm.getString("abstractProtocolHandler.stopError", -getName())); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044093 - /tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java
Author: markt Date: Thu Dec 9 19:15:30 2010 New Revision: 1044093 URL: http://svn.apache.org/viewvc?rev=1044093&view=rev Log: mserver != null will never be true if the mbean was registered. Drop the check since the unregister method will handle things correctly anyway Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java?rev=1044093&r1=1044092&r2=1044093&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java Thu Dec 9 19:15:30 2010 @@ -418,10 +418,8 @@ public abstract class AbstractProtocolHa getName()), e); } -// If object was pre-registered (mserver != null) what ever registered -// the ProtocolHandler should de-register it -if (oname != null && mserver == null) { -Registry.getRegistry(null, null).unregisterComponent(oname); +if (oname != null) { +Registry.getRegistry(null, null).unregisterComponent(oname); } if (tpOname != null) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044110 - in /tomcat/trunk: java/org/apache/tomcat/util/net/ test/org/apache/tomcat/util/net/ webapps/docs/ webapps/docs/config/
Author: markt Date: Thu Dec 9 19:49:24 2010 New Revision: 1044110 URL: http://svn.apache.org/viewvc?rev=1044110&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50360 Add an option to control when the socket is bound Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/test/org/apache/tomcat/util/net/TestXxxEndpoint.java tomcat/trunk/webapps/docs/changelog.xml tomcat/trunk/webapps/docs/config/http.xml Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1044110&r1=1044109&r2=1044110&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Thu Dec 9 19:49:24 2010 @@ -97,6 +97,10 @@ public abstract class AbstractEndpoint { public void recycle(); } +protected enum BindState { +UNBOUND, BOUND_ON_INIT, BOUND_ON_START +} + // Standard SSL Configuration attributes // JSSE // Standard configuration attribute names @@ -143,11 +147,6 @@ public abstract class AbstractEndpoint { protected volatile boolean paused = false; /** - * Track the initialization state of the endpoint. - */ -protected boolean initialized = false; - -/** * Are we using an internal executor */ protected volatile boolean internalExecutor = false; @@ -202,6 +201,17 @@ public abstract class AbstractEndpoint { public int getBacklog() { return backlog; } /** + * Controls when the Endpoint binds the port. true, the default + * binds the port on {...@link #init()} and unbinds it on {...@link #destroy()}. + * If set to false the port is bound on {...@link #start()} and + * unbound on {...@link #stop()}. + */ +private boolean bindOnInit = true; +public boolean getBindOnInit() { return bindOnInit; } +public void setBindOnInit(boolean b) { this.bindOnInit = b; } +private BindState bindState = BindState.UNBOUND; + +/** * Keepalive timeout, if lesser or equal to 0 then soTimeout will be used. */ private int keepAliveTimeout = -1; @@ -503,8 +513,34 @@ public abstract class AbstractEndpoint { } -public abstract void init() throws Exception; -public abstract void start() throws Exception; +// --- Lifecycle methods + +/* + * NOTE: There is no maintenance of state or checking for valid transitions + * within this class other than ensuring that bind/unbind are called in the + * right place. It is expected that the calling code will maintain state and + * prevent invalid state transitions. + */ + +public abstract void bind() throws Exception; +public abstract void unbind() throws Exception; +public abstract void startInternal() throws Exception; +public abstract void stopInternal() throws Exception; + +public final void init() throws Exception { +if (bindOnInit) { +bind(); +bindState = BindState.BOUND_ON_INIT; +} +} + +public final void start() throws Exception { +if (bindState == BindState.UNBOUND) { +bind(); +bindState = BindState.BOUND_ON_START; +} +startInternal(); +} /** * Pause the endpoint, which will stop it accepting new connections. @@ -532,8 +568,21 @@ public abstract class AbstractEndpoint { } } -public abstract void stop() throws Exception; -public abstract void destroy() throws Exception; +public final void stop() throws Exception { +stopInternal(); +if (bindState == BindState.BOUND_ON_START) { +unbind(); +bindState = BindState.UNBOUND; +} +} + +public final void destroy() throws Exception { +if (bindState == BindState.BOUND_ON_INIT) { +unbind(); +bindState = BindState.UNBOUND; +} +} + public String adjustRelativePath(String path, String relativeTo) { String newPath = path; Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1044110&r1=1044109&r2=1044110&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Thu Dec 9 19:49:24 2010 @@ -365,
DO NOT REPLY [Bug 50360] Server socket still bound after Embedded.stop is invoked
https://issues.apache.org/bugzilla/show_bug.cgi?id=50360 Mark Thomas changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution||FIXED --- Comment #11 from Mark Thomas 2010-12-09 14:54:52 EST --- And fixed again. You want to set the bindOnInit parameter to false to get the behaviour you want. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50360] Server socket still bound after Embedded.stop is invoked
https://issues.apache.org/bugzilla/show_bug.cgi?id=50360 Sylvain Laurent changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED | --- Comment #12 from Sylvain Laurent 2010-12-09 15:30:05 EST --- I think your changes broke /manager/status , I get the following exception with rev 1044114 : SEVERE: Servlet.service() for servlet [Status] in context with path [/manager] threw exception [javax.management.AttributeNotFoundException: Cannot find attribute maxTime for org.apache.coyote.http11.http11protocol$http11connectionhand...@2377ab84] with root cause javax.management.AttributeNotFoundException: Cannot find attribute maxTime for org.apache.coyote.http11.http11protocol$http11connectionhand...@2377ab84 at org.apache.tomcat.util.modeler.ManagedBean.getGetter(ManagedBean.java:494) at org.apache.tomcat.util.modeler.BaseModelMBean.getAttribute(BaseModelMBean.java:180) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:666) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:638) at org.apache.catalina.manager.StatusTransformer.writeConnectorState(StatusTransformer.java:275) at org.apache.catalina.manager.StatusManagerServlet.doGet(StatusManagerServlet.java:276) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at javax.servlet.http.HttpServlet.service(HttpServlet.java:724) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:561) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:179) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:157) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:283) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044133 - /tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java
Author: markt Date: Thu Dec 9 21:11:39 2010 New Revision: 1044133 URL: http://svn.apache.org/viewvc?rev=1044133&view=rev Log: Register the correct object after the refactoring Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java?rev=1044133&r1=1044132&r2=1044133&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocolHandler.java Thu Dec 9 21:11:39 2010 @@ -330,8 +330,8 @@ public abstract class AbstractProtocolHa } rgOname=new ObjectName(domain + ":type=GlobalRequestProcessor,name=" + getName()); -Registry.getRegistry(null, null).registerComponent(getHandler(), -rgOname, null ); +Registry.getRegistry(null, null).registerComponent( +getHandler().getGlobal(), rgOname, null ); } endpoint.setName(getName()); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50360] Server socket still bound after Embedded.stop is invoked
https://issues.apache.org/bugzilla/show_bug.cgi?id=50360 Mark Thomas changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution||FIXED --- Comment #13 from Mark Thomas 2010-12-09 16:12:08 EST --- Re-factoring goof - fixed. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044145 - in /tomcat/trunk: java/org/apache/catalina/core/ java/org/apache/tomcat/util/threads/ test/org/apache/tomcat/util/threads/
Author: slaurent Date: Thu Dec 9 22:11:27 2010 New Revision: 1044145 URL: http://svn.apache.org/viewvc?rev=1044145&view=rev Log: bug 49159: Improve ThreadLocal memory leak clean-up https://issues.apache.org/bugzilla/show_bug.cgi?id=49159 Use a dedicated thread when calling web application code when it is started and stopped (calls to Listeners, Filters, Servlets). Added: tomcat/trunk/java/org/apache/tomcat/util/threads/DedicatedThreadExecutor.java (with props) tomcat/trunk/test/org/apache/tomcat/util/threads/ tomcat/trunk/test/org/apache/tomcat/util/threads/DedicatedThreadExecutorTest.java (with props) Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1044145&r1=1044144&r2=1044145&view=diff == --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Thu Dec 9 22:11:27 2010 @@ -37,6 +37,7 @@ import java.util.Map; import java.util.Set; import java.util.Stack; import java.util.TreeMap; +import java.util.concurrent.Callable; import javax.management.ListenerNotFoundException; import javax.management.MBeanNotificationInfo; @@ -117,6 +118,7 @@ import org.apache.tomcat.JarScanner; import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.modeler.Registry; import org.apache.tomcat.util.scan.StandardJarScanner; +import org.apache.tomcat.util.threads.DedicatedThreadExecutor; /** * Standard implementation of the Context interface. Each @@ -4966,6 +4968,7 @@ public class StandardContext extends Con } } +DedicatedThreadExecutor temporaryExecutor = new DedicatedThreadExecutor(); try { // Create context attributes that will be required @@ -4992,7 +4995,21 @@ public class StandardContext extends Con // Configure and call application event listeners if (ok) { -if (!listenerStart()) { +// we do it in a dedicated thread for memory leak protection, in +// case the Listeners registers some ThreadLocals that they +// forget to cleanup +Boolean listenerStarted = +temporaryExecutor.execute(new Callable() { +public Boolean call() throws Exception { +ClassLoader old = bindThread(); +try { +return listenerStart(); +} finally { +unbindThread(old); +} +} +}); +if (!listenerStarted) { log.error( "Error listenerStart"); ok = false; } @@ -5013,20 +5030,48 @@ public class StandardContext extends Con // Configure and call application filters if (ok) { -if (!filterStart()) { -log.error( "Error filterStart"); +// we do it in a dedicated thread for memory leak protection, in +// case the Filters register some ThreadLocals that they forget +// to cleanup +Boolean filterStarted = +temporaryExecutor.execute(new Callable() { +public Boolean call() throws Exception { +ClassLoader old = bindThread(); +try { +return filterStart(); +} finally { +unbindThread(old); +} +} +}); +if (!filterStarted) { +log.error("Error filterStart"); ok = false; } } // Load and initialize all "load on startup" servlets if (ok) { -loadOnStartup(findChildren()); +// we do it in a dedicated thread for memory leak protection, in +// case the Servlets register some ThreadLocals that they forget +// to cleanup +temporaryExecutor.execute(new Callable() { +public Void call() throws Exception { +ClassLoader old = bindThread(); +try { +loadOnStartup(findChildren()); +return null; +} finally { +unbindThread(old); +} +} +});
DO NOT REPLY [Bug 49159] Improve ThreadLocal memory leak clean-up
https://issues.apache.org/bugzilla/show_bug.cgi?id=49159 --- Comment #17 from Sylvain Laurent 2010-12-09 17:16:44 EST --- rev 1044145 : committed some more enhancements in case a web application creates some ThreadLocals that it does not clean during its startup or shutdown phases (calls to Listeners, Filters and Servlets). A dedicated thread is used in these phases. Will be available for 7.0.6 -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044162 - in /tomcat/trunk/java/org/apache/jasper: ./ compiler/ el/ runtime/ tagplugins/jstl/core/ xmlparser/
Author: markt Date: Thu Dec 9 23:29:15 2010 New Revision: 1044162 URL: http://svn.apache.org/viewvc?rev=1044162&view=rev Log: Fix missing @Override markers in Jasper and remove an unnecessary null check Modified: tomcat/trunk/java/org/apache/jasper/EmbeddedServletOptions.java tomcat/trunk/java/org/apache/jasper/JspC.java tomcat/trunk/java/org/apache/jasper/compiler/DefaultErrorHandler.java tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java tomcat/trunk/java/org/apache/jasper/compiler/JarURLResource.java tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java tomcat/trunk/java/org/apache/jasper/compiler/TagPluginManager.java tomcat/trunk/java/org/apache/jasper/el/JspMethodExpression.java tomcat/trunk/java/org/apache/jasper/el/JspValueExpression.java tomcat/trunk/java/org/apache/jasper/el/VariableResolverImpl.java tomcat/trunk/java/org/apache/jasper/runtime/HttpJspBase.java tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java tomcat/trunk/java/org/apache/jasper/runtime/JspContextWrapper.java tomcat/trunk/java/org/apache/jasper/runtime/JspFactoryImpl.java tomcat/trunk/java/org/apache/jasper/runtime/JspRuntimeLibrary.java tomcat/trunk/java/org/apache/jasper/runtime/JspWriterImpl.java tomcat/trunk/java/org/apache/jasper/runtime/PageContextImpl.java tomcat/trunk/java/org/apache/jasper/runtime/ProtectedFunctionMapper.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Catch.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Choose.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/ForTokens.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/If.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Import.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Otherwise.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Out.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Param.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Redirect.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Remove.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Set.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Url.java tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/When.java tomcat/trunk/java/org/apache/jasper/xmlparser/ParserUtils.java Modified: tomcat/trunk/java/org/apache/jasper/EmbeddedServletOptions.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/EmbeddedServletOptions.java?rev=1044162&r1=1044161&r2=1044162&view=diff == --- tomcat/trunk/java/org/apache/jasper/EmbeddedServletOptions.java (original) +++ tomcat/trunk/java/org/apache/jasper/EmbeddedServletOptions.java Thu Dec 9 23:29:15 2010 @@ -213,6 +213,7 @@ public final class EmbeddedServletOption /** * Are we keeping generated code around? */ +@Override public boolean getKeepGenerated() { return keepGenerated; } @@ -220,10 +221,12 @@ public final class EmbeddedServletOption /** * Should white spaces between directives or actions be trimmed? */ +@Override public boolean getTrimSpaces() { return trimSpaces; } +@Override public boolean isPoolingEnabled() { return isPoolingEnabled; } @@ -231,6 +234,7 @@ public final class EmbeddedServletOption /** * Are we supporting HTML mapped servlets? */ +@Override public boolean getMappedFile() { return mappedFile; } @@ -238,6 +242,7 @@ public final class EmbeddedServletOption /** * Should class files be compiled with debug information? */ +@Override public boolean getClassDebugInfo() { return classDebugInfo; } @@ -245,6 +250,7 @@ public final class EmbeddedServletOption /** * Background JSP compile thread check interval */ +@Override public int getCheckInterval() { return checkInterval; } @@ -252,6 +258,7 @@ public final class EmbeddedServletOption /** * Modification test interval. */ +@Override public int getModificationTestInterval() { return modificationTestInterval; } @@ -259,6 +266,7 @@ public final class EmbeddedServletOption /** * Re-compile on failure. */ +@Override public boolean getRecompileOnFail() { return recompileOnFail; } @@ -266,6 +274,7 @@ public final class EmbeddedServletOption /** * Is Jasper being used in development mode? */ +@Override public boolean getDevelopment() { return development; } @@ -273,6 +282,7 @@ public final class EmbeddedServletOption /** * Is the generation
svn commit: r1044164 - /tomcat/trunk/java/org/apache/jasper/util/Enumerator.java
Author: markt Date: Thu Dec 9 23:30:15 2010 New Revision: 1044164 URL: http://svn.apache.org/viewvc?rev=1044164&view=rev Log: Grrr. Missed a couple of @Override markers Modified: tomcat/trunk/java/org/apache/jasper/util/Enumerator.java Modified: tomcat/trunk/java/org/apache/jasper/util/Enumerator.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/util/Enumerator.java?rev=1044164&r1=1044163&r2=1044164&view=diff == --- tomcat/trunk/java/org/apache/jasper/util/Enumerator.java (original) +++ tomcat/trunk/java/org/apache/jasper/util/Enumerator.java Thu Dec 9 23:30:15 2010 @@ -151,6 +151,7 @@ public final class Enumerator impleme * contains at least one more element to provide, false * otherwise */ +@Override public boolean hasMoreElements() { return (iterator.hasNext()); @@ -166,6 +167,7 @@ public final class Enumerator impleme * * @exception NoSuchElementException if no more elements exist */ +@Override public T nextElement() throws NoSuchElementException { return (iterator.next()); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044171 - in /tomcat/trunk/java/org/apache/catalina: ha/deploy/UndeployMessage.java tribes/ByteMessage.java
Author: markt Date: Thu Dec 9 23:47:57 2010 New Revision: 1044171 URL: http://svn.apache.org/viewvc?rev=1044171&view=rev Log: Remove redundant interface definitions and fix other warnings (missing @Overrides) in same files Modified: tomcat/trunk/java/org/apache/catalina/ha/deploy/UndeployMessage.java tomcat/trunk/java/org/apache/catalina/tribes/ByteMessage.java Modified: tomcat/trunk/java/org/apache/catalina/ha/deploy/UndeployMessage.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/deploy/UndeployMessage.java?rev=1044171&r1=1044170&r2=1044171&view=diff == --- tomcat/trunk/java/org/apache/catalina/ha/deploy/UndeployMessage.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/deploy/UndeployMessage.java Thu Dec 9 23:47:57 2010 @@ -17,11 +17,10 @@ package org.apache.catalina.ha.deploy; -import java.io.Serializable; - import org.apache.catalina.ha.ClusterMessage; import org.apache.catalina.tribes.Member; -public class UndeployMessage implements ClusterMessage,Serializable { + +public class UndeployMessage implements ClusterMessage { private static final long serialVersionUID = 1L; private Member address; @@ -46,26 +45,32 @@ public class UndeployMessage implements this.contextPath = contextPath; } +@Override public Member getAddress() { return address; } +@Override public void setAddress(Member address) { this.address = address; } +@Override public long getTimestamp() { return timestamp; } +@Override public void setTimestamp(long timestamp) { this.timestamp = timestamp; } +@Override public String getUniqueId() { return uniqueId; } +@Override public void setUniqueId(String uniqueId) { this.uniqueId = uniqueId; } Modified: tomcat/trunk/java/org/apache/catalina/tribes/ByteMessage.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/ByteMessage.java?rev=1044171&r1=1044170&r2=1044171&view=diff == --- tomcat/trunk/java/org/apache/catalina/tribes/ByteMessage.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/ByteMessage.java Thu Dec 9 23:47:57 2010 @@ -20,7 +20,6 @@ import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import java.io.Serializable; /** * A byte message is not serialized and deserialized by the channel @@ -40,7 +39,7 @@ import java.io.Serializable; * @version $Id$ */ -public class ByteMessage implements Serializable, Externalizable { +public class ByteMessage implements Externalizable { /** * Storage for the message to be sent */ @@ -83,6 +82,7 @@ public class ByteMessage implements Seri * @param in ObjectInput * @throws IOException */ +@Override public void readExternal(ObjectInput in ) throws IOException { int length = in.readInt(); message = new byte[length]; @@ -94,6 +94,7 @@ public class ByteMessage implements Seri * @param out ObjectOutput * @throws IOException */ +@Override public void writeExternal(ObjectOutput out) throws IOException { out.writeInt(message!=null?message.length:0); if ( message!=null ) out.write(message,0,message.length); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044175 - in /tomcat/trunk/java/org/apache/catalina/ha/backend: CollectedInfo.java HeartbeatListener.java MultiCastSender.java Proxy.java TcpSender.java
Author: markt Date: Thu Dec 9 23:54:21 2010 New Revision: 1044175 URL: http://svn.apache.org/viewvc?rev=1044175&view=rev Log: Fix Eclipse warnings in package Modified: tomcat/trunk/java/org/apache/catalina/ha/backend/CollectedInfo.java tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java tomcat/trunk/java/org/apache/catalina/ha/backend/Proxy.java tomcat/trunk/java/org/apache/catalina/ha/backend/TcpSender.java Modified: tomcat/trunk/java/org/apache/catalina/ha/backend/CollectedInfo.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/backend/CollectedInfo.java?rev=1044175&r1=1044174&r2=1044175&view=diff == --- tomcat/trunk/java/org/apache/catalina/ha/backend/CollectedInfo.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/backend/CollectedInfo.java Thu Dec 9 23:54:21 2010 @@ -101,6 +101,6 @@ public class CollectedInfo { Integer ibusy = (Integer) mBeanServer.getAttribute(objName, "currentThreadsBusy"); busy = ibusy.intValue(); -ready = imax.intValue() - ibusy; +ready = imax.intValue() - ibusy.intValue(); } } Modified: tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java?rev=1044175&r1=1044174&r2=1044175&view=diff == --- tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/backend/HeartbeatListener.java Thu Dec 9 23:54:21 2010 @@ -74,9 +74,11 @@ public class HeartbeatListener private Sender sender = null; +@Override public void containerEvent(ContainerEvent event) { } +@Override public void lifecycleEvent(LifecycleEvent event) { if (Lifecycle.PERIODIC_EVENT.equals(event.getType())) { Modified: tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java?rev=1044175&r1=1044174&r2=1044175&view=diff == --- tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/backend/MultiCastSender.java Thu Dec 9 23:54:21 2010 @@ -41,10 +41,12 @@ public class MultiCastSender MulticastSocket s = null; InetAddress group = null; +@Override public void init(HeartbeatListener config) throws Exception { this.config = config; } +@Override public int send(String mess) throws Exception { if (s == null) { try { Modified: tomcat/trunk/java/org/apache/catalina/ha/backend/Proxy.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/backend/Proxy.java?rev=1044175&r1=1044174&r2=1044175&view=diff == --- tomcat/trunk/java/org/apache/catalina/ha/backend/Proxy.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/backend/Proxy.java Thu Dec 9 23:54:21 2010 @@ -26,7 +26,7 @@ import java.net.InetAddress; */ public class Proxy { - protected enum State { OK, ERROR, DOWN }; + protected enum State { OK, ERROR, DOWN } public InetAddress address = null; public int port = 80; Modified: tomcat/trunk/java/org/apache/catalina/ha/backend/TcpSender.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/backend/TcpSender.java?rev=1044175&r1=1044174&r2=1044175&view=diff == --- tomcat/trunk/java/org/apache/catalina/ha/backend/TcpSender.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/backend/TcpSender.java Thu Dec 9 23:54:21 2010 @@ -56,6 +56,7 @@ public class TcpSender protected BufferedWriter[] connectionWriters = null; +@Override public void init(HeartbeatListener config) throws Exception { this.config = config; StringTokenizer tok = new StringTokenizer(config.getProxyList(), ","); @@ -81,6 +82,7 @@ public class TcpSender } +@Override public int send(String mess) throws Exception { if (connections == null) { log.error("Not initialized"); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1044178 - in /tomcat/trunk/java/org/apache/catalina/ha/deploy: FarmWarDeployer.java WarWatcher.java
Author: markt Date: Thu Dec 9 23:58:20 2010 New Revision: 1044178 URL: http://svn.apache.org/viewvc?rev=1044178&view=rev Log: Fix Eclipse warnings in package Modified: tomcat/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java tomcat/trunk/java/org/apache/catalina/ha/deploy/WarWatcher.java Modified: tomcat/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java?rev=1044178&r1=1044177&r2=1044178&view=diff == --- tomcat/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java Thu Dec 9 23:58:20 2010 @@ -139,6 +139,7 @@ public class FarmWarDeployer extends Clu } /*--Logic---*/ +@Override public void start() throws Exception { if (started) return; @@ -174,12 +175,8 @@ public class FarmWarDeployer extends Clu } configBase = new File(System.getProperty(Globals.CATALINA_BASE_PROP), "conf"); -if (engine != null) { -configBase = new File(configBase, engine.getName()); -} -if (host != null) { -configBase = new File(configBase, hostname); -} +configBase = new File(configBase, engine.getName()); +configBase = new File(configBase, hostname); // Retrieve the MBean server mBeanServer = Registry.getRegistry(null, null).getMBeanServer(); @@ -198,6 +195,7 @@ public class FarmWarDeployer extends Clu * * @see org.apache.catalina.ha.ClusterDeployer#stop() */ +@Override public void stop() throws LifecycleException { started = false; getCluster().removeClusterListener(this); @@ -367,6 +365,7 @@ public class FarmWarDeployer extends Clu *if an input/output error was encountered during *installation */ +@Override public void install(String contextPath, URL war) throws IOException { Member[] members = getCluster().getMembers(); Member localMember = getCluster().getLocalMember(); @@ -414,6 +413,7 @@ public class FarmWarDeployer extends Clu * @exception IOException *if an input/output error occurs during removal */ +@Override public void remove(String contextPath, boolean undeploy) throws IOException { if (log.isInfoEnabled()) log.info("Cluster wide remove of web app " + contextPath); @@ -451,6 +451,7 @@ public class FarmWarDeployer extends Clu * * @see org.apache.catalina.ha.deploy.FileChangeListener#fileModified(java.io.File) */ +@Override public void fileModified(File newWar) { try { File deployWar = new File(getDeployDir(), newWar.getName()); @@ -475,6 +476,7 @@ public class FarmWarDeployer extends Clu * * @see org.apache.catalina.ha.deploy.FileChangeListener#fileRemoved(java.io.File) */ +@Override public void fileRemoved(File removeWar) { try { String contextName = getContextName(removeWar); @@ -581,6 +583,7 @@ public class FarmWarDeployer extends Clu * * @see org.apache.catalina.ha.ClusterDeployer#backgroundProcess() */ +@Override public void backgroundProcess() { if (started) { count = (count + 1) % processDeployFrequency; Modified: tomcat/trunk/java/org/apache/catalina/ha/deploy/WarWatcher.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/deploy/WarWatcher.java?rev=1044178&r1=1044177&r2=1044178&view=diff == --- tomcat/trunk/java/org/apache/catalina/ha/deploy/WarWatcher.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/deploy/WarWatcher.java Thu Dec 9 23:58:20 2010 @@ -158,6 +158,7 @@ public class WarWatcher { * File name filter for war files */ protected class WarFilter implements java.io.FilenameFilter { +@Override public boolean accept(File path, String name) { if (name == null) return false; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50448] New: StandardSession.expire causes IllegalStateException: getCreationTime: Session already invalidated
https://issues.apache.org/bugzilla/show_bug.cgi?id=50448 Summary: StandardSession.expire causes IllegalStateException: getCreationTime: Session already invalidated Product: Tomcat 7 Version: trunk Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Catalina AssignedTo: dev@tomcat.apache.org ReportedBy: martin.grot...@googlemail.com Hi, when verifying the fix for #50360 I ran into an issue with expired sessions during processExpires: Dec 10, 2010 12:59:32 AM org.apache.catalina.core.ContainerBase backgroundProcess WARNING: Exception processing manager de.javakaffee.web.msm.MemcachedBackupSessionManager[/] background process java.lang.IllegalStateException: getCreationTime: Session already invalidated at org.apache.catalina.session.StandardSession.getCreationTime(StandardSession.java:1096) at org.apache.catalina.session.ManagerBase.remove(ManagerBase.java:802) at org.apache.catalina.session.StandardSession.expire(StandardSession.java:840) at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:655) at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:609) at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:594) at de.javakaffee.web.msm.MemcachedBackupSessionManager.backgroundProcess(MemcachedBackupSessionManager.java:1130) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1214) AFAICS in MemcachedBackupSessionManager I could override remove(Session session, boolean update) with calling super.remove(session, false) for invalid sessions. Another option would be to change StandardSession.expire(StandardSession.java:840) so that it does not invoke manager.remove(this, true) but manager.remove(this, false). Or even better: change ManagerBase.remove(ManagerBase.java:802) to invoke some session.getCreationTimeInternal() which skips validation. What do you think? Cheers, Martin -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50360] Server socket still bound after Embedded.stop is invoked
https://issues.apache.org/bugzilla/show_bug.cgi?id=50360 --- Comment #14 from Martin Grotzke 2010-12-09 19:24:22 EST --- (In reply to comment #13) > Re-factoring goof - fixed. Great, thanx a lot for your work! Now I ran into another issue, will submit this separately (#50448). -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 50449] New: Methodexpression with arguments fails in JSF composite component
https://issues.apache.org/bugzilla/show_bug.cgi?id=50449 Summary: Methodexpression with arguments fails in JSF composite component Product: Tomcat 7 Version: 7.0.5 Platform: PC Status: NEW Severity: normal Priority: P2 Component: Jasper AssignedTo: dev@tomcat.apache.org ReportedBy: bal...@gmail.com When a methodexpression with arguments is invoked in a JSF composite component, Tomcat 7.0.5 EL fails to locate the right method. This works fine in Glassfish 3.0.1, so it's likely not a JSF/Facelets issue. Below testcase requires the Mojarra 2.0.3 API and Impl JAR's in /WEB-INF/lib. test.xhtml http://java.sun.com/jsf/html"; xmlns:cc="http://java.sun.com/jsf/composite/components";> Test Inline components Composite component resources/components/test.xhtml http://java.sun.com/jsf/html"; xmlns:cc="http://java.sun.com/jsf/composite";> com.example.Bean package com.example; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; @ManagedBean @RequestScoped public class Bean { public void submit() { System.out.println("submit"); } public void submit(String string) { System.out.println("submit with string: " + string); } } When running on Tomcat 7.0.5, the submit with argument on a JSF composite component will submit to the method without argument. When the method without argument is outcommented in bean, a javax.el.MethodNotFoundException is been thrown. While not immediately visible in the stacktrace, under the covers Tomcat seems to be returning the wrong method for the method expression. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org