responseHeaderMessage = new AjpMessage(packetSize);
bodyMessage = new AjpMessage(packetSize);
- if (endpoint.getFirstReadTimeout() > 0) {
- readTimeout = endpoint.getFirstReadTimeout() * 1000;
- } else {
+ readTimeout = endpoint.getFirstReadTimeout() * 1000;
+ if (readTimeout == 0) {
readTimeout = 100 * 1000;
+ } else if (readTimeout < 0) {
+ readTimeout = -1;
}
// Allocate input and output buffers
inputBuffer.limit(inputBuffer.position());
inputBuffer.position(0);
}
+ int nRead;
while (inputBuffer.remaining() < n) {
- int nRead = Socket.recvbb
+ nRead = Socket.recvbb
(socket, inputBuffer.limit(),
inputBuffer.capacity() - inputBuffer.limit());
if (nRead > 0) {
inputBuffer.limit(inputBuffer.position());
inputBuffer.position(0);
}
+ int nRead;
while (inputBuffer.remaining() < n) {
- int nRead = Socket.recvbbt
- (socket, inputBuffer.limit(),
+ if (readTimeout > 0) {
+ nRead = Socket.recvbbt
+ (socket, inputBuffer.limit(),
inputBuffer.capacity() - inputBuffer.limit(), readTimeout);
+ } else {
+ nRead = Socket.recvbb
+ (socket, inputBuffer.limit(),
+ inputBuffer.capacity() - inputBuffer.limit());
+ }
if (nRead > 0) {
inputBuffer.limit(inputBuffer.limit() + nRead);
} else {
throws IOException {
if (outputBuffer.position() > 0) {
if (Socket.sendbb(socket, 0, outputBuffer.position()) < 0) {
- throw new IOException();
+ throw new IOException(sm.getString("ajpprocessor.failedsend"));
}
outputBuffer.clear();
}