costin 02/04/24 12:45:09 Modified: jk/java/org/apache/jk/server JkCoyoteHandler.java JkMain.java Log: Potential fix for 8478. Check if the response has been already commited, and don't recommit. Display a small info notice - COMMIT action shouldn't be called twice or after the first chunk. Revision Changes Path 1.15 +39 -36 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java Index: JkCoyoteHandler.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- JkCoyoteHandler.java 23 Apr 2002 08:11:05 -0000 1.14 +++ JkCoyoteHandler.java 24 Apr 2002 19:45:09 -0000 1.15 @@ -239,47 +239,50 @@ if( actionCode==ActionCode.ACTION_COMMIT ) { org.apache.coyote.Response res=(org.apache.coyote.Response)param; - if( log.isInfoEnabled() ) - log.info("COMMIT sending headers " + res + " " + res.getMimeHeaders() ); - - - C2BConverter c2b=(C2BConverter)res.getNote( utfC2bNote ); - if( c2b==null ) { - c2b=new C2BConverter( "UTF8" ); - res.setNote( utfC2bNote, c2b ); - } - - MsgContext ep=(MsgContext)res.getNote( epNote ); - MsgAjp msg=(MsgAjp)ep.getNote( headersMsgNote ); - msg.reset(); - msg.appendByte(HandlerRequest.JK_AJP13_SEND_HEADERS); - msg.appendInt( res.getStatus() ); - - // s->b conversion, message - msg.appendBytes( null ); - - // XXX add headers - - MimeHeaders headers=res.getMimeHeaders(); - int numHeaders = headers.size(); - msg.appendInt(numHeaders); - for( int i=0; i<numHeaders; i++ ) { - MessageBytes hN=headers.getName(i); - // no header to sc conversion - there's little benefit - // on this direction - c2b.convert ( hN ); - msg.appendBytes( hN ); + if( res.isCommited() ) { + if( log.isInfoEnabled() ) + log.info("Response already commited " ); + } else { + if( log.isInfoEnabled() ) + log.info("COMMIT sending headers " + res + " " + res.getMimeHeaders() ); + + C2BConverter c2b=(C2BConverter)res.getNote( utfC2bNote ); + if( c2b==null ) { + c2b=new C2BConverter( "UTF8" ); + res.setNote( utfC2bNote, c2b ); + } + + MsgContext ep=(MsgContext)res.getNote( epNote ); + MsgAjp msg=(MsgAjp)ep.getNote( headersMsgNote ); + msg.reset(); + msg.appendByte(HandlerRequest.JK_AJP13_SEND_HEADERS); + msg.appendInt( res.getStatus() ); + + // s->b conversion, message + msg.appendBytes( null ); - MessageBytes hV=headers.getValue(i); - c2b.convert( hV ); - msg.appendBytes( hV ); + // XXX add headers + + MimeHeaders headers=res.getMimeHeaders(); + int numHeaders = headers.size(); + msg.appendInt(numHeaders); + for( int i=0; i<numHeaders; i++ ) { + MessageBytes hN=headers.getName(i); + // no header to sc conversion - there's little benefit + // on this direction + c2b.convert ( hN ); + msg.appendBytes( hN ); + + MessageBytes hV=headers.getValue(i); + c2b.convert( hV ); + msg.appendBytes( hV ); + } + ep.setType( JkHandler.HANDLE_SEND_PACKET ); + ep.getSource().invoke( msg, ep ); } - ep.setType( JkHandler.HANDLE_SEND_PACKET ); - ep.getSource().invoke( msg, ep ); } else if( actionCode==ActionCode.ACTION_RESET ) { if( log.isInfoEnabled() ) log.info("RESET " ); - } else if( actionCode==ActionCode.ACTION_CLOSE ) { if( log.isInfoEnabled() ) log.info("CLOSE " ); 1.22 +1 -1 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java Index: JkMain.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- JkMain.java 22 Apr 2002 19:03:34 -0000 1.21 +++ JkMain.java 24 Apr 2002 19:45:09 -0000 1.22 @@ -232,7 +232,7 @@ "container", "channelSocket", "channelJni", - "channelUn"}; + "channelUnix"}; public void stop() {
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>