\r
try {\r
rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);\r
- int data = inputBuffer.readSocketData();\r
- if ( data > 0 ) {\r
- int contentLength = request.getContentLength();\r
- if (contentLength>=0) request.setContentLength(contentLength + data);\r
- for (int i=0; i<inputBuffer.activeFilters.length; i++) {\r
- //this resets the remaining flag and the content length on the filter\r
- //if we don't do this, then request.getInputStream.read will return 0\r
- if (inputBuffer.activeFilters[i]!=null) inputBuffer.activeFilters[i].setRequest(request);\r
- }\r
- error = !adapter.event(request, response, error);\r
- if (request.getAttribute("org.apache.tomcat.comet") == null) {\r
- comet = false;\r
- }\r
+ error = !adapter.event(request, response, error);\r
+ if (request.getAttribute("org.apache.tomcat.comet") == null) {\r
+ comet = false;\r
}\r
} catch (InterruptedIOException e) {\r
error = true;\r
}\r
\r
}\r
- \r
- public int readSocketData() {\r
- bbuf.clear();\r
- int nRead = Socket.recvbbt(socket, 0, buf.length - lastValid, readTimeout);\r
- if (nRead > 0) {\r
- bbuf.limit(nRead);\r
- bbuf.get(buf, pos, nRead);\r
- lastValid = pos + nRead;\r
- }\r
- return nRead>=0?nRead:-1;\r
- }\r
\r
\r
/**\r