Author: kkolinko Date: Thu Jan 27 18:43:18 2011 New Revision: 1064252 URL: http://svn.apache.org/viewvc?rev=1064252&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50651 Fix NPE in InternalNioOutputBuffer.recycle(). - Do not throw NPE when recycle() is called more than once. - Do not recycle the request in CoyoteAdapter#log() if it was not created there.
Modified: tomcat/tc6.0.x/trunk/STATUS.txt tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1064252&r1=1064251&r2=1064252&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Jan 27 18:43:18 2011 @@ -114,16 +114,3 @@ PATCHES PROPOSED TO BACKPORT: http://svn.apache.org/viewvc?rev=1062398&view=rev +1: kkolinko, markt, fhanik -1: - -* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50651 - NPE in InternalNioOutputBuffer.recycle() - https://issues.apache.org/bugzilla/attachment.cgi?id=26549 - +1: kkolinko, markt, fhanik - -1: - - Additional patch: - Recycle request and response in CoyoteAdapter#log() only if they were - created there. - https://issues.apache.org/bugzilla/attachment.cgi?id=26557 - +1: kkolinko, fhanik, markt - -1: Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1064252&r1=1064251&r2=1064252&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Thu Jan 27 18:43:18 2011 @@ -349,9 +349,10 @@ public class CoyoteAdapter implements Ad Request request = (Request) req.getNote(ADAPTER_NOTES); Response response = (Response) res.getNote(ADAPTER_NOTES); + boolean create = false; if (request == null) { - + create = true; // Create objects request = connector.createRequest(); request.setCoyoteRequest(req); @@ -374,8 +375,10 @@ public class CoyoteAdapter implements Ad connector.getService().getContainer().logAccess( request, response, time, true); - request.recycle(); - response.recycle(); + if (create) { + request.recycle(); + response.recycle(); + } } Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java?rev=1064252&r1=1064251&r2=1064252&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java Thu Jan 27 18:43:18 2011 @@ -348,9 +348,10 @@ public class InternalNioOutputBuffer // Recycle Request object response.recycle(); - socket.getBufHandler().getWriteBuffer().clear(); - - socket = null; + if (socket != null) { + socket.getBufHandler().getWriteBuffer().clear(); + socket = null; + } pos = 0; lastActiveFilter = -1; committed = false; Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=1064252&r1=1064251&r2=1064252&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Thu Jan 27 18:43:18 2011 @@ -43,6 +43,16 @@ <!-- Section names: General, Catalina, Coyote, Jasper, Cluster, Webapps, Other --> +<section name="Tomcat 6.0.32 (jfclere)"> + <subsection name="Coyote"> + <changelog> + <fix> + <bug>50651</bug>: Fix NPE in InternalNioOutputBuffer.recycle(). + (kkolinko) + </fix> + </changelog> + </subsection> +</section> <section name="Tomcat 6.0.31 (jfclere)"> <subsection name="Catalina"> <changelog> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org