Re: svn commit: r1135088 - in /tomcat/trunk: java/org/apache/coyote/AbstractProtocol.java webapps/docs/changelog.xml

2011-07-06 Thread Rainer Jung
Hi Konstantin,

On 06.07.2011 08:03, Konstantin Kolinko wrote:
> 1. JavaDoc for the method has to be updated. It still says that the
> name is quoted.

Will fix.

> 2. If I understand correctly, the name _is_ used directly, in
> AbstractConnectionHandler.register():
> ... ",worker=" + getProtocol().getName() + ",name=" ...

It is used in ObjectNames, but only as a substring, not as a *full*
Objectname. That's why I left the quoting in the sense of
ObjectName.quote() in there, which might replace some special
characters, and only stripped the surrounding quotes from the result.

An exaple for the resultig ObjectName is:

Catalina:type=RequestProcessor,worker=http-bio-8080,name=HttpRequest1

instead of

Catalina:type=RequestProcessor,worker="http-bio-8080",name=HttpRequest1

> and MBeanUtils.destroyMBean(Connector,Service)
>   worker = ((**Protocol)*).getName()
>   new ObjectName(domain + ":type=RequestProcessor,worker=" + worker + ",*")
> 
> 
> So if quotes are to be removed, let's do before appending the "-exec-"
> suffix to them.

That's what should already happen. From JMX:

workerThreadName: http-bio-8080-exec-1

Thread names from thread dump:

"ajp-bio-8009-AsyncTimeout"
"ajp-bio-8009-Acceptor-0"
"http-bio-8080-AsyncTimeout"
"http-bio-8080-Acceptor-0"

etc.

> The name is passed to Endpoint (AbstractEndpoint.setName()) and the
> "-exec-" suffix is added in AbstractEndpoint.createExecutor().  There
> are also other suffixes elsewhere ("-Poller-", "-CometPoller-"), ...

Maybe you misinterpreted the multiple use of the word "quote". We still
quote in the sense of escaping some chars in the name if it wouldn't be
allowed in an ObjectName. We no longer quote in the sense of surrounding
the name with quotes. So all names derived from getName() should be fine
now.

Regards,

Rainer

> 2011/6/13  :
>> Author: rjung
>> Date: Mon Jun 13 11:19:23 2011
>> New Revision: 1135088
>>
>> URL: http://svn.apache.org/viewvc?rev=1135088&view=rev
>> Log:
>> Remove superfluous quotes from thread names for
>> connection pools.
>>
>> Example broken thread name: "http-apr-8001"-exec-2
>> (including leading and intermediate quotes).
>>
>> Since we never use the names as a full ObjectName,
>> only as a part of an ObjectName, it is safe to
>> remove the surrounding quotes from the Protocol name.
>>
>> Modified:
>>tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
>>tomcat/trunk/webapps/docs/changelog.xml
>>
>> Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
>> URL: 
>> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1135088&r1=1135087&r2=1135088&view=diff
>> ==
>> --- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original)
>> +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Mon Jun 13 
>> 11:19:23 2011
>> @@ -229,7 +229,8 @@ public abstract class AbstractProtocol i
>> name.append('-');
>> }
>> name.append(endpoint.getPort());
>> -return ObjectName.quote(name.toString());
>> +String quotedName = ObjectName.quote(name.toString());
>> +return quotedName.substring(1, quotedName.length()-1);
>> }
>>
>>
>>
>> Modified: tomcat/trunk/webapps/docs/changelog.xml
>> URL: 
>> http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1135088&r1=1135087&r2=1135088&view=diff
>> ==
>> --- tomcat/trunk/webapps/docs/changelog.xml (original)
>> +++ tomcat/trunk/webapps/docs/changelog.xml Mon Jun 13 11:19:23 2011
>> @@ -53,6 +53,10 @@
>> Fix unit test for bindOnInit which was failing for APR on some
>> platforms. (rjung)
>>   
>> +  
>> +Remove superfluous quotes from thread names for connection pools.
>> +(rjung)
>> +  
>> 
>>   
>>   


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1137440 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11AprProcessor.java Http11NioProcessor.java

2011-07-06 Thread Konstantin Kolinko
I have doubts regarding this change.

If I understand correctly,  recycle() (and thus recycleInternal()) is
not called when several requests are processed in a row.

So, in the old code sendfile is set to null before each request,  in
the new code it is set to null only once after connection is closed.



2011/6/20  :
> Author: markt
> Date: Sun Jun 19 21:15:22 2011
> New Revision: 1137440
>
> URL: http://svn.apache.org/viewvc?rev=1137440&view=rev
> Log:
> Reset sendfile data in recycle method so prepareRequest can be pulled up
>
> Modified:
>    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
>    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
>
> Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1137440&r1=1137439&r2=1137440&view=diff
> ==
> --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java 
> (original)
> +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Sun 
> Jun 19 21:15:22 2011
> @@ -390,7 +390,8 @@ public class Http11AprProcessor extends
>
>     @Override
>     public void recycleInternal() {
> -        this.socket = null;
> +        socket = null;
> +        sendfileData = null;
>     }
>
>
> @@ -636,7 +637,6 @@ public class Http11AprProcessor extends
>         http09 = false;
>         contentDelimitation = false;
>         expectation = false;
> -        sendfileData = null;
>         if (endpoint.isSSLEnabled()) {
>             request.scheme().setString("https");
>         }
>
> Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1137440&r1=1137439&r2=1137440&view=diff
> ==
> --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java 
> (original)
> +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Sun 
> Jun 19 21:15:22 2011
> @@ -447,15 +447,16 @@ public class Http11NioProcessor extends
>
>     @Override
>     public void recycleInternal() {
> -        this.socket = null;
> -        this.cometClose = false;
> -        this.comet = false;
> +        socket = null;
> +        cometClose = false;
> +        comet = false;
>         remoteAddr = null;
>         remoteHost = null;
>         localAddr = null;
>         localName = null;
>         remotePort = -1;
>         localPort = -1;
> +        sendfileData = null;
>     }
>
>
> @@ -680,7 +681,6 @@ public class Http11NioProcessor extends
>         http09 = false;
>         contentDelimitation = false;
>         expectation = false;
> -        sendfileData = null;
>         if (endpoint.isSSLEnabled()) {
>             request.scheme().setString("https");
>         }
>
>
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1135088 - in /tomcat/trunk: java/org/apache/coyote/AbstractProtocol.java webapps/docs/changelog.xml

2011-07-06 Thread Konstantin Kolinko
2011/7/6 Rainer Jung :
> Hi Konstantin,
>
> On 06.07.2011 08:03, Konstantin Kolinko wrote:
>> 1. JavaDoc for the method has to be updated. It still says that the
>> name is quoted.
>
> Will fix.
>
>> 2. If I understand correctly, the name _is_ used directly, in
>> AbstractConnectionHandler.register():
>> ... ",worker=" + getProtocol().getName() + ",name=" ...
>
> It is used in ObjectNames, but only as a substring, not as a *full*
> Objectname. That's why I left the quoting in the sense of
> ObjectName.quote() in there, which might replace some special
> characters, and only stripped the surrounding quotes from the result.
>
> An exaple for the resultig ObjectName is:
>
> Catalina:type=RequestProcessor,worker=http-bio-8080,name=HttpRequest1
>
> instead of
>
> Catalina:type=RequestProcessor,worker="http-bio-8080",name=HttpRequest1
>
>> and MBeanUtils.destroyMBean(Connector,Service)
>>   worker = ((**Protocol)*).getName()
>>   new ObjectName(domain + ":type=RequestProcessor,worker=" + worker + ",*")
>>
>>
>> So if quotes are to be removed, let's do before appending the "-exec-"
>> suffix to them.
>
> That's what should already happen. From JMX:
>
> workerThreadName: http-bio-8080-exec-1
>
> Thread names from thread dump:
>
> "ajp-bio-8009-AsyncTimeout"
> "ajp-bio-8009-Acceptor-0"
> "http-bio-8080-AsyncTimeout"
> "http-bio-8080-Acceptor-0"
>
> etc.
>
>> The name is passed to Endpoint (AbstractEndpoint.setName()) and the
>> "-exec-" suffix is added in AbstractEndpoint.createExecutor().  There
>> are also other suffixes elsewhere ("-Poller-", "-CometPoller-"), ...
>
> Maybe you misinterpreted the multiple use of the word "quote". We still
> quote in the sense of escaping some chars in the name if it wouldn't be
> allowed in an ObjectName. We no longer quote in the sense of surrounding
> the name with quotes. So all names derived from getName() should be fine
> now.
>

Thank you for the explanation.

>From ObjectName javadoc:
http://download.oracle.com/javase/1.5.0/docs/api/javax/management/ObjectName.html

[[[
Each value associated with a key is a string of characters that is
either unquoted or quoted.

An unquoted value is a possibly empty string of characters which may
not contain any of the characters comma, equals, colon, quote,
asterisk, or question mark.

A quoted value consists of a quote ("), followed by a possibly empty
string of characters, followed by another quote.(...)
]]]

So it looks like the quotes should be used when building a name from parts.

Regarding the name itself - it may contains address, and address may
contain a colon (':') if it is an ip6 address. That will require
quoting as a colon cannot be present in an unquoted name.

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 51472] Bugin ? in BeanELResolver.getMethod()

2011-07-06 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=51472

--- Comment #4 from Konstantin Kolinko  2011-07-06 
08:51:05 UTC ---
(In reply to comment #3)
Yes, as designed.

For reference, the discussion that Mark mentions
http://markmail.org/message/zpyvs4vqj2whqloo

-- 
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



Something is wrong with TC7 uninstaller (Windows)

2011-07-06 Thread Konstantin Kolinko
There is some bug in the uninstaller:

It deleted *all* shortcuts from Windows Menu (both for me and for All Users),
not only Tomcat ones.

I just noticed after rebooting, that none of my Startup shortcuts did
run -- they have been deleted.

Please beware while testing.


It might be my fault, but I have have not looked in the nsi file yet to confirm.

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Something is wrong with TC7 uninstaller (Windows)

2011-07-06 Thread Konstantin Kolinko
2011/7/6 Konstantin Kolinko :
> There is some bug in the uninstaller:
>
> It deleted *all* shortcuts from Windows Menu (both for me and for All Users),
> not only Tomcat ones.
>
> I just noticed after rebooting, that none of my Startup shortcuts did
> run -- they have been deleted.
>
> Please beware while testing.
>

1. Rolling the system back to a restore point created two days ago solved this.
(though broke something else).

2. I do not know what was the cause  - I cannot reproduce it. I hope
it was a false warning.

It might have been some intermediate version of the installer, when I
tried to use variables in the installation path, - not the version
that I have committed.


Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1137440 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11AprProcessor.java Http11NioProcessor.java

2011-07-06 Thread Mark Thomas
On 06/07/2011 08:55, Konstantin Kolinko wrote:
> I have doubts regarding this change.
> 
> If I understand correctly,  recycle() (and thus recycleInternal()) is
> not called when several requests are processed in a row.

Recycle is called between every request, keeping in mind that a Comet
request may involve multiple reads and writes and that Async requests
may have multiple writes.

The call is triggered in the Handler implementations in the protocol.
- Http11Protocol: Http11ConnectionHandler#process() calls
processor.recycle() unless the socket is in long poll mode (i.e. the
request is ongoing)
- Http11NioProtocol: Http11ConnectionHandler#process() calls release)
(which in turn calls processor.recycle()) unless the socket is in long
poll mode (i.e. the request is ongoing)
- Http11AprProtocol: Http11ConnectionHandler#process() calls
processor.recycle() unless the socket is in long poll mode (i.e. the
request is ongoing)

The calls to recycle were somewhat randomly spread about the code for
different connectors and there were certainly bugs in the past where a
particular code path could bypass all the recycle calls. One of the
benefits of the recent refactoring is that it is much easier to check
that things are correct and also easier to fix when they are not.

One of the things at the back of my mind when doing the refactoring was
cleaning up the recycle calls. I didn't do it explicitly but it looks
like it has happened anyway as a side-effect of aligning the code. The
only minor issue I can see are some unnecessary calls to recycle in
Http11Processor#process().

> So, in the old code sendfile is set to null before each request,  in
> the new code it is set to null only once after connection is closed.

I don't think so. If you have some analysis that suggests otherwise,
please share it.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1143334 - /tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java

2011-07-06 Thread markt
Author: markt
Date: Wed Jul  6 10:51:18 2011
New Revision: 1143334

URL: http://svn.apache.org/viewvc?rev=1143334&view=rev
Log:
Refactor the bind call to reduce the length of the stack traces when the unit 
tests fail. It probably won't fix the issue but it will make the logs easier to 
read.

Modified:
tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java?rev=1143334&r1=114&r2=1143334&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java 
Wed Jul  6 10:51:18 2011
@@ -209,38 +209,36 @@ public abstract class ReceiverBase imple
 }
 
 /**
- * recursive bind to find the next available port
- * @param socket ServerSocket
- * @param portstart int
- * @param retries int
- * @return int
+ * Attempts to bind using the provided port and if that fails attempts to
+ * bind to each of the ports from portstart to (portstart + retries -1)
+ * until either there are no more ports or the bind is successful. The
+ * address to bind to is obtained via a call to {link {@link #getBind()}.
+ * @param socketThe socket to bind
+ * @param portstart Starting port for bind attempts
+ * @param retries   Number of times to attempt to bind (port 
incremented
+ *  between attempts)
  * @throws IOException
  */
-protected int bind(ServerSocket socket, int portstart, int retries) throws 
IOException {
+protected void bind(ServerSocket socket, int portstart, int retries) 
throws IOException {
 InetSocketAddress addr = null;
-while ( retries > 0 ) {
+int port = portstart;
+while (retries > 0) {
 try {
-addr = new InetSocketAddress(getBind(), portstart);
+addr = new InetSocketAddress(getBind(), port);
 socket.bind(addr);
-setPort(portstart);
+setPort(port);
 log.info("Receiver Server Socket bound to:"+addr);
-return 0;
-}catch ( IOException x) {
+retries = 0;
+} catch ( IOException x) {
 retries--;
 if ( retries <= 0 ) {
-log.info("Unable to bind server socket to:"+addr+" 
throwing error.");
+log.info("Unable to bind server socket to:" + addr +
+" throwing error.");
 throw x;
 }
-portstart++;
-try {
-Thread.sleep(25);
-} catch (InterruptedException ti) {
-Thread.currentThread().interrupt();
-}
-retries = bind(socket,portstart,retries);
+port++;
 }
 }
-return retries;
 }
 
 /**



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1143334 - /tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java

2011-07-06 Thread Mark Thomas
On 06/07/2011 11:51, ma...@apache.org wrote:
> Author: markt
> Date: Wed Jul  6 10:51:18 2011
> New Revision: 1143334
> 
> URL: http://svn.apache.org/viewvc?rev=1143334&view=rev
> Log:
> Refactor the bind call to reduce the length of the stack traces when the unit 
> tests fail. It probably won't fix the issue but it will make the logs easier 
> to read.

Yep. It took all of 10 minutes for that to fail. I'm re-testing with a
sync around the bind and that seems to have fixed it. I want to run
through a few more test cycles before committing it.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1137440 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11AprProcessor.java Http11NioProcessor.java

2011-07-06 Thread Konstantin Kolinko
2011/7/6 Mark Thomas :
> On 06/07/2011 08:55, Konstantin Kolinko wrote:
>> I have doubts regarding this change.
>>
>> If I understand correctly,  recycle() (and thus recycleInternal()) is
>> not called when several requests are processed in a row.
>
> Recycle is called between every request, keeping in mind that a Comet
> request may involve multiple reads and writes and that Async requests
> may have multiple writes.

I do not have much time to dig at the moment,
but my understanding was that recycle() clears the input buffer. Thus
it cannot be called when there is data in it.  The method that is
called between requests when there are data is prepareRequest().

All this happens while looping inside process() call.

>
>> So, in the old code sendfile is set to null before each request,  in
>> the new code it is set to null only once after connection is closed.
>
> I don't think so. If you have some analysis that suggests otherwise,
> please share it.
>

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1137440 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11AprProcessor.java Http11NioProcessor.java

2011-07-06 Thread Mark Thomas
On 06/07/2011 12:26, Konstantin Kolinko wrote:
> 2011/7/6 Mark Thomas :
>> On 06/07/2011 08:55, Konstantin Kolinko wrote:
>>> I have doubts regarding this change.
>>>
>>> If I understand correctly,  recycle() (and thus recycleInternal()) is
>>> not called when several requests are processed in a row.
>>
>> Recycle is called between every request, keeping in mind that a Comet
>> request may involve multiple reads and writes and that Async requests
>> may have multiple writes.
> 
> I do not have much time to dig at the moment,
> but my understanding was that recycle() clears the input buffer. Thus
> it cannot be called when there is data in it.  The method that is
> called between requests when there are data is prepareRequest().
> 
> All this happens while looping inside process() call.

I'll double check what happens when pipe-lining requests. That wasn't
something I had in mind when looking at it before. Worst case, we need
two recycle methods.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1143334 - /tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java

2011-07-06 Thread Mark Thomas
On 06/07/2011 12:16, Mark Thomas wrote:
> On 06/07/2011 11:51, ma...@apache.org wrote:
>> Author: markt
>> Date: Wed Jul  6 10:51:18 2011
>> New Revision: 1143334
>>
>> URL: http://svn.apache.org/viewvc?rev=1143334&view=rev
>> Log:
>> Refactor the bind call to reduce the length of the stack traces when the 
>> unit tests fail. It probably won't fix the issue but it will make the logs 
>> easier to read.
> 
> Yep. It took all of 10 minutes for that to fail. I'm re-testing with a
> sync around the bind and that seems to have fixed it. I want to run
> through a few more test cycles before committing it.

Five runs through the unit tests later, the sync seems to have fixed it.
Commit following shortly.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1143379 - in /tomcat/trunk: java/org/apache/catalina/tribes/transport/ReceiverBase.java webapps/docs/changelog.xml

2011-07-06 Thread markt
Author: markt
Date: Wed Jul  6 12:31:50 2011
New Revision: 1143379

URL: http://svn.apache.org/viewvc?rev=1143379&view=rev
Log:
Add sync to fix test failures on Linux.
Should have minimal impact in normal Tomcat usage since each instance/JVM only 
opens a single socket.

Modified:
tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java
tomcat/trunk/webapps/docs/changelog.xml

Modified: 
tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java?rev=1143379&r1=1143378&r2=1143379&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/transport/ReceiverBase.java 
Wed Jul  6 12:31:50 2011
@@ -50,6 +50,8 @@ public abstract class ReceiverBase imple
 
 private static final Log log = LogFactory.getLog(ReceiverBase.class);
 
+private static final Object bindLock = new Object();
+
 private MessageListener listener;
 private String host = "auto";
 private InetAddress bind;
@@ -220,23 +222,25 @@ public abstract class ReceiverBase imple
  * @throws IOException
  */
 protected void bind(ServerSocket socket, int portstart, int retries) 
throws IOException {
-InetSocketAddress addr = null;
-int port = portstart;
-while (retries > 0) {
-try {
-addr = new InetSocketAddress(getBind(), port);
-socket.bind(addr);
-setPort(port);
-log.info("Receiver Server Socket bound to:"+addr);
-retries = 0;
-} catch ( IOException x) {
-retries--;
-if ( retries <= 0 ) {
-log.info("Unable to bind server socket to:" + addr +
-" throwing error.");
-throw x;
+synchronized (bindLock) {
+InetSocketAddress addr = null;
+int port = portstart;
+while (retries > 0) {
+try {
+addr = new InetSocketAddress(getBind(), port);
+socket.bind(addr);
+setPort(port);
+log.info("Receiver Server Socket bound to:"+addr);
+retries = 0;
+} catch ( IOException x) {
+retries--;
+if ( retries <= 0 ) {
+log.info("Unable to bind server socket to:" + addr +
+" throwing error.");
+throw x;
+}
+port++;
 }
-port++;
 }
 }
 }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1143379&r1=1143378&r2=1143379&view=diff
==
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Jul  6 12:31:50 2011
@@ -95,6 +95,10 @@
 Start to convert non-JUnit tests to JUnit. Remove unnecessary code.
 (markt) 
   
+  
+Add synchronization to receiver socket binding to prevent test failures
+on Linuz. (markt) 
+  
 
   
   



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1143380 - /tomcat/trunk/webapps/docs/changelog.xml

2011-07-06 Thread markt
Author: markt
Date: Wed Jul  6 12:34:27 2011
New Revision: 1143380

URL: http://svn.apache.org/viewvc?rev=1143380&view=rev
Log:
Fix typo

Modified:
tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1143380&r1=1143379&r2=1143380&view=diff
==
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Jul  6 12:34:27 2011
@@ -97,7 +97,7 @@
   
   
 Add synchronization to receiver socket binding to prevent test failures
-on Linuz. (markt) 
+on Linux. (markt) 
   
 
   



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1137440 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11AprProcessor.java Http11NioProcessor.java

2011-07-06 Thread Mark Thomas
On 06/07/2011 13:26, Mark Thomas wrote:
> On 06/07/2011 12:26, Konstantin Kolinko wrote:
>> 2011/7/6 Mark Thomas :
>>> On 06/07/2011 08:55, Konstantin Kolinko wrote:
 I have doubts regarding this change.

 If I understand correctly,  recycle() (and thus recycleInternal()) is
 not called when several requests are processed in a row.
>>>
>>> Recycle is called between every request, keeping in mind that a Comet
>>> request may involve multiple reads and writes and that Async requests
>>> may have multiple writes.
>>
>> I do not have much time to dig at the moment,
>> but my understanding was that recycle() clears the input buffer. Thus
>> it cannot be called when there is data in it.  The method that is
>> called between requests when there are data is prepareRequest().
>>
>> All this happens while looping inside process() call.
> 
> I'll double check what happens when pipe-lining requests. That wasn't
> something I had in mind when looking at it before. Worst case, we need
> two recycle methods.

Yep, the sendfileData does need to be nulled. Looking at options for
doing this now.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1143457 - in /tomcat/trunk: java/org/apache/coyote/http11/ webapps/docs/

2011-07-06 Thread markt
Author: markt
Date: Wed Jul  6 15:05:45 2011
New Revision: 1143457

URL: http://svn.apache.org/viewvc?rev=1143457&view=rev
Log:
Correct regression caused by connector re-factoring that meant that sendfile 
data was not reset between pipe-lined HTTP requests.

Modified:
tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
tomcat/trunk/webapps/docs/changelog.xml

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1143457&r1=1143456&r2=1143457&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Wed 
Jul  6 15:05:45 2011
@@ -776,6 +776,9 @@ public abstract class AbstractHttp11Proc
 http09 = false;
 contentDelimitation = false;
 expectation = false;
+
+prepareRequestInternal();
+
 if (endpoint.isSSLEnabled()) {
 request.scheme().setString("https");
 }
@@ -971,6 +974,12 @@ public abstract class AbstractHttp11Proc
 
 
 /**
+ * Connector implementation specific request preparation. Ideally, this 
will
+ * go away in the future.
+ */
+protected abstract void prepareRequestInternal();
+
+/**
  * When committing the response, we have to validate the set of headers, as
  * well as setup the response filters.
  */

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1143457&r1=1143456&r2=1143457&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Wed Jul  
6 15:05:45 2011
@@ -621,6 +621,11 @@ public class Http11AprProcessor extends 
 
 
 @Override
+protected void prepareRequestInternal() {
+sendfileData = null;
+}
+
+@Override
 protected boolean prepareSendfile(OutputFilter[] outputFilters) {
 String fileName = (String) request.getAttribute(
 "org.apache.tomcat.sendfile.filename");

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1143457&r1=1143456&r2=1143457&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Wed Jul  
6 15:05:45 2011
@@ -676,6 +676,11 @@ public class Http11NioProcessor extends 
 
 
 @Override
+protected void prepareRequestInternal() {
+sendfileData = null;
+}
+
+@Override
 protected boolean prepareSendfile(OutputFilter[] outputFilters) {
 String fileName = (String) request.getAttribute(
 "org.apache.tomcat.sendfile.filename");

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1143457&r1=1143456&r2=1143457&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Wed Jul  6 
15:05:45 2011
@@ -582,6 +582,11 @@ public class Http11Processor extends Abs
 
 
 @Override
+protected void prepareRequestInternal() {
+// NOOP for BIO
+}
+
+@Override
 protected boolean prepareSendfile(OutputFilter[] outputFilters) {
 // Should never, ever call this code
 Exception e = new Exception();

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1143457&r1=1143456&r2=1143457&view=diff
==
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Jul  6 15:05:45 2011
@@ -86,6 +86,10 @@
 Correct regression caused by connector re-factoring that made AJP
 APR/native connector very unstable on Windows platforms. (markt)
   
+  
+Correct regression caused by connector re-factoring that meant that
+sendfile data was not reset between pipe-l

svn commit: r1143488 - /tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java

2011-07-06 Thread markt
Author: markt
Date: Wed Jul  6 16:31:31 2011
New Revision: 1143488

URL: http://svn.apache.org/viewvc?rev=1143488&view=rev
Log:
Refactor to avoid NPEs during test

Modified:
tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java

Modified: tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java?rev=1143488&r1=1143487&r2=1143488&view=diff
==
--- tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java 
(original)
+++ tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java Wed 
Jul  6 16:31:31 2011
@@ -20,26 +20,17 @@ import junit.framework.TestCase;
 
 public class TestLimitLatch extends TestCase {
 
-private volatile LimitLatch latch = null;
-
-@Override
-public void tearDown() {
-LimitLatch temp = latch;
-if (temp!=null) temp.releaseAll();
-latch = null;
-}
-
 public void testNoThreads() throws Exception {
-latch = new LimitLatch(0);
+LimitLatch latch = new LimitLatch(0);
 assertEquals("No threads should be waiting", false,
 latch.hasQueuedThreads());
 }
 
 public void testOneThreadNoWait() throws Exception {
-latch = new LimitLatch(1);
+LimitLatch latch = new LimitLatch(1);
 assertEquals("No threads should be waiting", false,
 latch.hasQueuedThreads());
-Thread testThread = new TestThread();
+Thread testThread = new TestThread(latch);
 testThread.start();
 Thread.sleep(50);
 assertEquals("0 threads should be waiting", 0,
@@ -51,10 +42,10 @@ public class TestLimitLatch extends Test
 }
 
 public void testOneThreadWaitCountUp() throws Exception {
-latch = new LimitLatch(1);
+LimitLatch latch = new LimitLatch(1);
 assertEquals("No threads should be waiting", false,
 latch.hasQueuedThreads());
-Thread testThread = new TestThread();
+Thread testThread = new TestThread(latch);
 latch.countUpOrAwait();
 testThread.start();
 Thread.sleep(50);
@@ -67,10 +58,10 @@ public class TestLimitLatch extends Test
 }
 
 public void testOneRelease() throws Exception {
-latch = new LimitLatch(1);
+LimitLatch latch = new LimitLatch(1);
 assertEquals("No threads should be waiting", false,
 latch.hasQueuedThreads());
-Thread testThread = new TestThread();
+Thread testThread = new TestThread(latch);
 latch.countUpOrAwait();
 testThread.start();
 Thread.sleep(50);
@@ -83,12 +74,12 @@ public class TestLimitLatch extends Test
 }
 
 public void testTenWait() throws Exception {
-latch = new LimitLatch(10);
+LimitLatch latch = new LimitLatch(10);
 assertEquals("No threads should be waiting", false,
 latch.hasQueuedThreads());
 Thread[] testThread = new TestThread[30];
 for (int i = 0; i < 30; i++) {
-testThread[i] = new TestThread(1000);
+testThread[i] = new TestThread(latch, 1000);
 testThread[i].start();
 }
 Thread.sleep(50);
@@ -105,12 +96,14 @@ public class TestLimitLatch extends Test
 private class TestThread extends Thread {
 
 private int holdTime;
-
-public TestThread() {
-this(100);
+private LimitLatch latch;
+
+public TestThread(LimitLatch latch) {
+this(latch, 100);
 }
 
-public TestThread(int holdTime) {
+public TestThread(LimitLatch latch, int holdTime) {
+this.latch = latch;
 this.holdTime = holdTime;
 }
  
@@ -120,6 +113,8 @@ public class TestLimitLatch extends Test
 latch.countUpOrAwait();
 Thread.sleep(holdTime);
 latch.countDown();
+} catch (NullPointerException npe) {
+npe.printStackTrace();
 } catch (InterruptedException x) {
 x.printStackTrace();
 }



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: [VOTE] Release Apache Tomcat Connectors 1.2.32

2011-07-06 Thread Jim Jagielski

On Jul 4, 2011, at 2:34 AM, Mladen Turk wrote:
> The proposed 1.2.32 release is:
> [X] Stable - go ahead and release as 1.2.32 Stable
> [ ] Broken - do not release

+1: OSX and Fed14

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 51468] Redirect Valve

2011-07-06 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=51468

--- Comment #12 from Sergey Ushakov  2011-07-06 22:31:04 
UTC ---
Just one more word regarding reluctance to incorporate existing mature
functionality into Tomcat.

I would personally be happy to use UrlRewrite for the mentioned tasks if this
filter gets the Valve interface implemented one day... Or maybe gets a wrapper
to implement the Valve interface...

But can we expect this? There may be a potential obstacle on that way that
Filter is a standard and container-independent concept, while Valve is specific
for Tomcat...

-- 
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



Re: svn commit: r1143488 - /tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java

2011-07-06 Thread Konstantin Kolinko
2011/7/6  :
> Author: markt
> Date: Wed Jul  6 16:31:31 2011
> New Revision: 1143488
>
> URL: http://svn.apache.org/viewvc?rev=1143488&view=rev
> Log:
> Refactor to avoid NPEs during test
>
> Modified:
>    tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java
>

> @@ -120,6 +113,8 @@ public class TestLimitLatch extends Test
>                 latch.countUpOrAwait();
>                 Thread.sleep(holdTime);
>                 latch.countDown();
> +            } catch (NullPointerException npe) {
> +                npe.printStackTrace();

If you are really avoiding the exception as the commit message says,
then the above catch should not be necessary? It just suppresses it.

The issue was with the testcase and not with the latch itself?

>             } catch (InterruptedException x) {
>                 x.printStackTrace();
>             }

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1143488 - /tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java

2011-07-06 Thread Mark Thomas
On 07/07/2011 00:08, Konstantin Kolinko wrote:
> 2011/7/6  :
>> Author: markt
>> Date: Wed Jul  6 16:31:31 2011
>> New Revision: 1143488
>>
>> URL: http://svn.apache.org/viewvc?rev=1143488&view=rev
>> Log:
>> Refactor to avoid NPEs during test
>>
>> Modified:
>>tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java
>>
> 
>> @@ -120,6 +113,8 @@ public class TestLimitLatch extends Test
>> latch.countUpOrAwait();
>> Thread.sleep(holdTime);
>> latch.countDown();
>> +} catch (NullPointerException npe) {
>> +npe.printStackTrace();
> 
> If you are really avoiding the exception as the commit message says,
> then the above catch should not be necessary? It just suppresses it.

Grr. That was old test code (I had a break point set there) that snuck
in. I'll pull that out in a sec.

> The issue was with the testcase and not with the latch itself?

Yeah. The latch was being nulled out by the tearDown() code before the
test threads had completely finished.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1143605 - /tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java

2011-07-06 Thread markt
Author: markt
Date: Wed Jul  6 23:12:15 2011
New Revision: 1143605

URL: http://svn.apache.org/viewvc?rev=1143605&view=rev
Log:
Remove debug code

Modified:
tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java

Modified: tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java?rev=1143605&r1=1143604&r2=1143605&view=diff
==
--- tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java 
(original)
+++ tomcat/trunk/test/org/apache/tomcat/util/threads/TestLimitLatch.java Wed 
Jul  6 23:12:15 2011
@@ -113,8 +113,6 @@ public class TestLimitLatch extends Test
 latch.countUpOrAwait();
 Thread.sleep(holdTime);
 latch.countDown();
-} catch (NullPointerException npe) {
-npe.printStackTrace();
 } catch (InterruptedException x) {
 x.printStackTrace();
 }



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1143607 - in /tomcat/tc7.0.x/TOMCAT_7_0_18: ./ build.properties.default modules/

2011-07-06 Thread markt
Author: markt
Date: Wed Jul  6 23:21:15 2011
New Revision: 1143607

URL: http://svn.apache.org/viewvc?rev=1143607&view=rev
Log:
Tag 7.0.18

Added:
tomcat/tc7.0.x/TOMCAT_7_0_18/
  - copied from r1143606, tomcat/trunk/
Removed:
tomcat/tc7.0.x/TOMCAT_7_0_18/modules/
Modified:
tomcat/tc7.0.x/TOMCAT_7_0_18/build.properties.default

Modified: tomcat/tc7.0.x/TOMCAT_7_0_18/build.properties.default
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/TOMCAT_7_0_18/build.properties.default?rev=1143607&r1=1143606&r2=1143607&view=diff
==
--- tomcat/tc7.0.x/TOMCAT_7_0_18/build.properties.default (original)
+++ tomcat/tc7.0.x/TOMCAT_7_0_18/build.properties.default Wed Jul  6 23:21:15 
2011
@@ -29,7 +29,7 @@ version.major=7
 version.minor=0
 version.build=18
 version.patch=0
-version.suffix=-dev
+version.suffix=
 
 # - Build control flags -
 # Note enabling validation uses Checkstyle which is LGPL licensed



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1143609 - in /tomcat/trunk: build.properties.default res/maven/mvn.properties.default

2011-07-06 Thread markt
Author: markt
Date: Wed Jul  6 23:22:06 2011
New Revision: 1143609

URL: http://svn.apache.org/viewvc?rev=1143609&view=rev
Log:
Update ready for next release

Modified:
tomcat/trunk/build.properties.default
tomcat/trunk/res/maven/mvn.properties.default

Modified: tomcat/trunk/build.properties.default
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/build.properties.default?rev=1143609&r1=1143608&r2=1143609&view=diff
==
--- tomcat/trunk/build.properties.default (original)
+++ tomcat/trunk/build.properties.default Wed Jul  6 23:22:06 2011
@@ -27,7 +27,7 @@
 # - Version Control Flags -
 version.major=7
 version.minor=0
-version.build=18
+version.build=19
 version.patch=0
 version.suffix=-dev
 

Modified: tomcat/trunk/res/maven/mvn.properties.default
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/res/maven/mvn.properties.default?rev=1143609&r1=1143608&r2=1143609&view=diff
==
--- tomcat/trunk/res/maven/mvn.properties.default (original)
+++ tomcat/trunk/res/maven/mvn.properties.default Wed Jul  6 23:22:06 2011
@@ -33,12 +33,12 @@ maven.snapshot.repo.repositoryId=apache.
 #Maven release properties for Tomcat staging
 
maven.release.repo.url=scp://people.apache.org/www/tomcat.apache.org/dev/dist/m2-repository
 maven.release.repo.repositoryId=tomcat-staging
-maven.release.deploy.version=7.0.18
+maven.release.deploy.version=7.0.19
 
 #Maven release properties for the main ASF repo
 
maven.asf.release.repo.url=scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository
 maven.asf.release.repo.repositoryId=apache.releases
-maven.asf.release.deploy.version=7.0.18
+maven.asf.release.deploy.version=7.0.19
 
 
 #Where do we load the libraries from



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1143610 - in /tomcat/tc7.0.x: TOMCAT_7_0_18/ tags/TOMCAT_7_0_18/

2011-07-06 Thread markt
Author: markt
Date: Wed Jul  6 23:24:13 2011
New Revision: 1143610

URL: http://svn.apache.org/viewvc?rev=1143610&view=rev
Log:
Put tag in right place

Added:
tomcat/tc7.0.x/tags/TOMCAT_7_0_18/
  - copied from r1143609, tomcat/tc7.0.x/TOMCAT_7_0_18/
Removed:
tomcat/tc7.0.x/TOMCAT_7_0_18/


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 51468] Redirect Valve

2011-07-06 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=51468

Christopher Schultz  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||WONTFIX

--- Comment #13 from Christopher Schultz  
2011-07-07 03:28:22 UTC ---
(In reply to comment #12)
> Just one more word regarding reluctance to incorporate existing mature
> functionality into Tomcat.
> 
> I would personally be happy to use UrlRewrite for the mentioned tasks if this
> filter gets the Valve interface implemented one day... Or maybe gets a wrapper
> to implement the Valve interface...

I'd honestly be happy if my earlier assertion that  could be used in
place of a  were true. I'll look into what that would take to
accomplish. Maybe a Valve implementation wrapper around the Filter interface.

That shouldn't actually be that hard, honestly. I'll look into it.

Let's move this discussion onto the dev list and out of BZ.

-- 
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



Re: [VOTE] Release Apache Tomcat Connectors 1.2.32

2011-07-06 Thread Wendal Chen
Stable +1: Ubuntu 10.04.02

2011/7/7 Jim Jagielski 

>
> On Jul 4, 2011, at 2:34 AM, Mladen Turk wrote:
> > The proposed 1.2.32 release is:
> > [X] Stable - go ahead and release as 1.2.32 Stable
> > [ ] Broken - do not release
>
> +1: OSX and Fed14
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>


-- 
Wendal Chen