protected abstract Log getLog();
+
/**
* The string manager for this package.
*/
protected static final StringManager sm =
StringManager.getManager(Constants.Package);
+
+ /**
+ * End message array.
+ */
+ protected static final byte[] endMessageArray;
+
+
+ /**
+ * Flush message array.
+ */
+ protected static final byte[] flushMessageArray;
+
+
+ /**
+ * Pong message array.
+ */
+ protected static final byte[] pongMessageArray;
+
+
+ static {
+ // Allocate the end message array
+ AjpMessage endMessage = new AjpMessage(16);
+ endMessage.reset();
+ endMessage.appendByte(Constants.JK_AJP13_END_RESPONSE);
+ endMessage.appendByte(1);
+ endMessage.end();
+ endMessageArray = new byte[endMessage.getLen()];
+ System.arraycopy(endMessage.getBuffer(), 0, endMessageArray, 0,
+ endMessage.getLen());
+
+ // Allocate the flush message array
+ AjpMessage flushMessage = new AjpMessage(16);
+ flushMessage.reset();
+ flushMessage.appendByte(Constants.JK_AJP13_SEND_BODY_CHUNK);
+ flushMessage.appendInt(0);
+ flushMessage.appendByte(0);
+ flushMessage.end();
+ flushMessageArray = new byte[flushMessage.getLen()];
+ System.arraycopy(flushMessage.getBuffer(), 0, flushMessageArray, 0,
+ flushMessage.getLen());
+
+ // Allocate the pong message array
+ AjpMessage pongMessage = new AjpMessage(16);
+ pongMessage.reset();
+ pongMessage.appendByte(Constants.JK_AJP13_CPONG_REPLY);
+ pongMessage.end();
+ pongMessageArray = new byte[pongMessage.getLen()];
+ System.arraycopy(pongMessage.getBuffer(), 0, pongMessageArray,
+ 0, pongMessage.getLen());
+ }
+
+
// ----------------------------------------------------- Instance Variables
protected final ByteBuffer getBodyMessageBuffer;
- /**
- * Direct buffer used for sending right away a pong message.
- */
- protected static final ByteBuffer pongMessageBuffer;
-
-
- /**
- * End message array.
- */
- protected static final byte[] endMessageArray;
-
-
- /**
- * Direct buffer used for sending explicit flush message.
- */
- protected static final ByteBuffer flushMessageBuffer;
-
-
- // ----------------------------------------------------- Static Initializer
-
-
- static {
-
- // Set the read body message buffer
- AjpMessage pongMessage = new AjpMessage(16);
- pongMessage.reset();
- pongMessage.appendByte(Constants.JK_AJP13_CPONG_REPLY);
- pongMessage.end();
- pongMessageBuffer = ByteBuffer.allocateDirect(pongMessage.getLen());
- pongMessageBuffer.put(pongMessage.getBuffer(), 0,
- pongMessage.getLen());
-
- // Allocate the end message array
- AjpMessage endMessage = new AjpMessage(16);
- endMessage.reset();
- endMessage.appendByte(Constants.JK_AJP13_END_RESPONSE);
- endMessage.appendByte(1);
- endMessage.end();
- endMessageArray = new byte[endMessage.getLen()];
- System.arraycopy(endMessage.getBuffer(), 0, endMessageArray, 0,
- endMessage.getLen());
-
- // Set the flush message buffer
- AjpMessage flushMessage = new AjpMessage(16);
- flushMessage.reset();
- flushMessage.appendByte(Constants.JK_AJP13_SEND_BODY_CHUNK);
- flushMessage.appendInt(0);
- flushMessage.appendByte(0);
- flushMessage.end();
- flushMessageBuffer =
- ByteBuffer.allocateDirect(flushMessage.getLen());
- flushMessageBuffer.put(flushMessage.getBuffer(), 0,
- flushMessage.getLen());
-
- }
-
-
// --------------------------------------------------------- Public Methods
// not regular request processing
int type = requestHeaderMessage.getByte();
if (type == Constants.JK_AJP13_CPING_REQUEST) {
- if (Socket.sendb(socketRef, pongMessageBuffer, 0,
- pongMessageBuffer.position()) < 0) {
+ if (Socket.send(socketRef, pongMessageArray, 0,
+ pongMessageArray.length) < 0) {
error = true;
}
continue;
}
// Send explicit flush message
if (explicit && !finished) {
- if (Socket.sendb(socketRef, flushMessageBuffer, 0,
- flushMessageBuffer.position()) < 0) {
+ if (Socket.send(socketRef, flushMessageArray, 0,
+ flushMessageArray.length) < 0) {
throw new IOException(sm.getString("ajpprocessor.failedflush"));
}
}
protected final byte[] getBodyMessageArray;
- /**
- * Direct buffer used for sending right away a pong message.
- */
- protected static final byte[] pongMessageArray;
-
-
- /**
- * End message array.
- */
- protected static final byte[] endMessageArray;
-
-
- /**
- * Flush message array.
- */
- protected static final byte[] flushMessageArray;
-
- // ----------------------------------------------------- Static Initializer
-
-
- static {
-
- // Set the read body message buffer
- AjpMessage pongMessage = new AjpMessage(16);
- pongMessage.reset();
- pongMessage.appendByte(Constants.JK_AJP13_CPONG_REPLY);
- pongMessage.end();
- pongMessageArray = new byte[pongMessage.getLen()];
- System.arraycopy(pongMessage.getBuffer(), 0, pongMessageArray,
- 0, pongMessage.getLen());
-
- // Allocate the end message array
- AjpMessage endMessage = new AjpMessage(16);
- endMessage.reset();
- endMessage.appendByte(Constants.JK_AJP13_END_RESPONSE);
- endMessage.appendByte(1);
- endMessage.end();
- endMessageArray = new byte[endMessage.getLen()];
- System.arraycopy(endMessage.getBuffer(), 0, endMessageArray, 0,
- endMessage.getLen());
-
- // Allocate the flush message array
- AjpMessage flushMessage = new AjpMessage(16);
- flushMessage.reset();
- flushMessage.appendByte(Constants.JK_AJP13_SEND_BODY_CHUNK);
- flushMessage.appendInt(0);
- flushMessage.appendByte(0);
- flushMessage.end();
- flushMessageArray = new byte[flushMessage.getLen()];
- System.arraycopy(flushMessage.getBuffer(), 0, flushMessageArray, 0,
- flushMessage.getLen());
-
- }
-
-
- // ------------------------------------------------------------- Properties
-
-
// --------------------------------------------------------- Public Methods
protected final byte[] getBodyMessageArray;
- /**
- * Direct buffer used for sending right away a pong message.
- */
- protected static final byte[] pongMessageArray;
-
-
- /**
- * End message array.
- */
- protected static final byte[] endMessageArray;
-
-
- /**
- * Flush message array.
- */
- protected static final byte[] flushMessageArray;
-
- // ----------------------------------------------------- Static Initializer
-
-
- static {
-
- // Set the read body message buffer
- AjpMessage pongMessage = new AjpMessage(16);
- pongMessage.reset();
- pongMessage.appendByte(Constants.JK_AJP13_CPONG_REPLY);
- pongMessage.end();
- pongMessageArray = new byte[pongMessage.getLen()];
- System.arraycopy(pongMessage.getBuffer(), 0, pongMessageArray,
- 0, pongMessage.getLen());
-
- // Allocate the end message array
- AjpMessage endMessage = new AjpMessage(16);
- endMessage.reset();
- endMessage.appendByte(Constants.JK_AJP13_END_RESPONSE);
- endMessage.appendByte(1);
- endMessage.end();
- endMessageArray = new byte[endMessage.getLen()];
- System.arraycopy(endMessage.getBuffer(), 0, endMessageArray, 0,
- endMessage.getLen());
-
- // Allocate the flush message array
- AjpMessage flushMessage = new AjpMessage(16);
- flushMessage.reset();
- flushMessage.appendByte(Constants.JK_AJP13_SEND_BODY_CHUNK);
- flushMessage.appendInt(0);
- flushMessage.appendByte(0);
- flushMessage.end();
- flushMessageArray = new byte[flushMessage.getLen()];
- System.arraycopy(flushMessage.getBuffer(), 0, flushMessageArray, 0,
- flushMessage.getLen());
-
- }
-
-
// ------------------------------------------------------------- Properties