[jboss-remoting-commits] JBoss Remoting SVN: r5762 - remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote.
jboss-remoting-commits at lists.jboss.org
jboss-remoting-commits at lists.jboss.org
Sat Feb 27 15:42:23 EST 2010
Author: david.lloyd at jboss.com
Date: 2010-02-27 15:42:22 -0500 (Sat, 27 Feb 2010)
New Revision: 5762
Modified:
remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequest.java
remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequestTask.java
remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteMessageHandler.java
Log:
Fix NPE on inbound task request creation
Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequest.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequest.java 2010-02-26 23:47:13 UTC (rev 5761)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequest.java 2010-02-27 20:42:22 UTC (rev 5762)
@@ -32,12 +32,13 @@
private Cancellable cancellable;
private OutboundReplyHandler replyHandler;
- private NioByteInput byteInput;
+ private final NioByteInput byteInput;
private final RemoteConnectionHandler remoteConnectionHandler;
private State state = State.RECEIVING;
- InboundRequest(final RemoteConnectionHandler remoteConnectionHandler) {
+ InboundRequest(final RemoteConnectionHandler remoteConnectionHandler, final int rid) {
this.remoteConnectionHandler = remoteConnectionHandler;
+ byteInput = new NioByteInput(new RequestInputHandler(this, rid));
}
void ack() {
@@ -56,10 +57,6 @@
flowSemaphore.acquire();
}
- void setByteInput(final NioByteInput byteInput) {
- this.byteInput = byteInput;
- }
-
void setReplyHandler(final OutboundReplyHandler replyHandler) {
this.replyHandler = replyHandler;
}
Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequestTask.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequestTask.java 2010-02-26 23:47:13 UTC (rev 5761)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequestTask.java 2010-02-27 20:42:22 UTC (rev 5762)
@@ -23,7 +23,6 @@
package org.jboss.remoting3.remote;
import java.io.IOException;
-import org.jboss.marshalling.NioByteInput;
import org.jboss.marshalling.Unmarshaller;
import org.jboss.marshalling.util.IntKeyMap;
import org.jboss.remoting3.RemoteRequestException;
@@ -47,7 +46,6 @@
final OutboundReplyHandler replyHandler;
final InboundRequest inboundRequest = this.inboundRequest;
synchronized (inboundRequest) {
- inboundRequest.setByteInput(new NioByteInput(new RequestInputHandler(inboundRequest, rid)));
inboundRequest.setReplyHandler(replyHandler = new OutboundReplyHandler(inboundRequest, rid));
}
final Object request;
Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteMessageHandler.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteMessageHandler.java 2010-02-26 23:47:13 UTC (rev 5761)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteMessageHandler.java 2010-02-27 20:42:22 UTC (rev 5762)
@@ -145,14 +145,17 @@
final InboundRequest inboundRequest;
final NioByteInput byteInput;
final IntKeyMap<InboundRequest> inboundRequests = connectionHandler.getInboundRequests();
+ final int cid;
+ boolean start = false;
synchronized (inboundRequests) {
if ((flags & RemoteProtocol.MSG_FLAG_FIRST) != 0) {
- final int cid = buffer.getInt();
- inboundRequest = new InboundRequest(connectionHandler);
+ cid = buffer.getInt();
+ inboundRequest = new InboundRequest(connectionHandler, 0);
+ start = true;
// todo - check for duplicate
inboundRequests.put(rid, inboundRequest);
- connectionHandler.getConnectionContext().getConnectionProviderContext().getExecutor().execute(new InboundRequestTask(connectionHandler, inboundRequest, rid, cid));
} else {
+ cid = 0;
inboundRequest = inboundRequests.get(rid);
}
if (inboundRequest == null) {
@@ -160,6 +163,9 @@
}
}
synchronized (inboundRequest) {
+ if (start) {
+ connectionHandler.getConnectionContext().getConnectionProviderContext().getExecutor().execute(new InboundRequestTask(connectionHandler, inboundRequest, rid, cid));
+ }
byteInput = inboundRequest.getByteInput();
}
byteInput.push(buffer);
More information about the jboss-remoting-commits
mailing list