Author: fhanik
Date: Wed Jul 16 17:13:37 2008
New Revision: 677473
URL: http://svn.apache.org/viewvc?rev=677473&view=rev
Log:
first chunk - make sure END gets called properly, if the event was closed
second chunk - if the POST body is x-www-form-urlencoded,
request.getAvailable() returns 0 for IdentityInputFilter
so we still need to invoke READ event if there is a body, and it hasn't been
processes by the servlet
Modified:
tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
tomcat/trunk/java/org/apache/catalina/connector/Request.java
Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=677473&r1=677472&r2=677473&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Wed Jul
16 17:13:37 2008
@@ -206,6 +206,13 @@
connector.getContainer().getPipeline().getFirst().event(request, response,
request.getEvent());
}
if (response.isClosed() || !request.isComet()) {
+ if (status==SocketStatus.OPEN) {
+ //CometEvent.close was called during an event.
+
request.getEvent().setEventType(CometEvent.EventType.END);
+ request.getEvent().setEventSubType(null);
+ error = true;
+
connector.getContainer().getPipeline().getFirst().event(request, response,
request.getEvent());
+ }
res.action(ActionCode.ACTION_COMET_END, null);
} else if (!error && read && request.getAvailable()) {
// If this was a read and not all bytes have been read, or
if no data
@@ -287,7 +294,7 @@
if (request.isComet()) {
if (!response.isClosed() && !response.isError()) {
- if (request.getAvailable()) {
+ if (request.getAvailable() ||
(request.getContentLength() > 0 && (!request.isParametersParsed()))) {
// Invoke a read event right away if there are
available bytes
if (event(req, res, SocketStatus.OPEN)) {
comet = true;
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=677473&r1=677472&r2=677473&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Wed Jul 16
17:13:37 2008
@@ -2248,6 +2248,12 @@
this.comet = comet;
}
+ /**
+ * return true if we have parsed parameters
+ */
+ public boolean isParametersParsed() {
+ return parametersParsed;
+ }
/**
* Return true if bytes are available.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]