affected version: Resin 4.0.0 & 4.0.1
reproducible: every time

HmuxResponse.writeHeadersInt should not always return false, otherwise in
ResponseStream "write-chunk5" will never happen if _chunkedEncoding==false.

this result in UTF8Writer produces a reproducible error.

I modified HmuxResponse.writeHeadersInt to add some lines below:


// add by wesley start
boolean hasContentLength = false;
// add by wesley end
if (_contentLength >= 0) {
cb.clear();
cb.append(_contentLength);
_req.writeHeader("Content-Length", cb);
// add by wesley start
hasContentLength = true;
// add by wesley end
} else if (length >= 0) {
cb.clear();
cb.append(length);
_req.writeHeader("Content-Length", cb);
// add by wesley start
hasContentLength = true;
// add by wesley end
}

                ...

// add by wesley start
boolean isChunked = false;
if (!hasContentLength && !isHead) {
isChunked = true;
}
return isChunked;
// add by wesley start
          }

and everything goes fine.

-Wesley
_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to