DO NOT REPLY [Bug 50441] New: It is not possible to have multiple instacnes of same docBase inside appBase

2010-12-09 Thread bugzilla
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

2010-12-09 Thread Apache Wiki
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

2010-12-09 Thread Apache Wiki
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread Henri Gomez
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

2010-12-09 Thread 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.

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-09 Thread Henri Gomez
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

2010-12-09 Thread schultz
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread markt
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

2010-12-09 Thread slaurent
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/

2010-12-09 Thread slaurent
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

2010-12-09 Thread markt
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

2010-12-09 Thread markt
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/

2010-12-09 Thread markt
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread markt
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

2010-12-09 Thread bugzilla
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/

2010-12-09 Thread slaurent
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

2010-12-09 Thread bugzilla
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/

2010-12-09 Thread markt
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

2010-12-09 Thread markt
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

2010-12-09 Thread markt
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

2010-12-09 Thread markt
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

2010-12-09 Thread markt
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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

2010-12-09 Thread bugzilla
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