You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2007/03/12 11:50:36 UTC
svn commit: r517167 - in
/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor:
AbstractIOReactor.java ChannelEntry.java DefaultConnectingIOReactor.java
Author: olegk
Date: Mon Mar 12 03:50:32 2007
New Revision: 517167
URL: http://svn.apache.org/viewvc?view=rev&rev=517167
Log:
HTTPCORE-57: SessionRequest object left in an inconsistent state if the session request succeeds
Modified:
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/ChannelEntry.java
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultConnectingIOReactor.java
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java?view=diff&rev=517167&r1=517166&r2=517167
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java Mon Mar 12 03:50:32 2007
@@ -208,6 +208,11 @@
this.sessions.add(session);
keyCreated(key, session);
this.eventDispatch.connected(session);
+
+ SessionRequestImpl sessionRequest = entry.getSessionRequest();
+ if (sessionRequest != null) {
+ sessionRequest.completed(session);
+ }
}
}
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/ChannelEntry.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/ChannelEntry.java?view=diff&rev=517167&r1=517166&r2=517167
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/ChannelEntry.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/ChannelEntry.java Mon Mar 12 03:50:32 2007
@@ -36,23 +36,31 @@
public class ChannelEntry {
private final SocketChannel channel;
- private final Object attachment;
+ private final SessionRequestImpl sessionRequest;
- public ChannelEntry(final SocketChannel channel, final Object attachment) {
+ public ChannelEntry(final SocketChannel channel, final SessionRequestImpl sessionRequest) {
super();
if (channel == null) {
throw new IllegalArgumentException("Socket channel may not be null");
}
this.channel = channel;
- this.attachment = attachment;
+ this.sessionRequest = sessionRequest;
}
public ChannelEntry(final SocketChannel channel) {
this(channel, null);
}
+ public SessionRequestImpl getSessionRequest() {
+ return this.sessionRequest;
+ }
+
public Object getAttachment() {
- return this.attachment;
+ if (this.sessionRequest != null) {
+ return this.sessionRequest.getAttachment();
+ } else {
+ return null;
+ }
}
public SocketChannel getChannel() {
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultConnectingIOReactor.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultConnectingIOReactor.java?view=diff&rev=517167&r1=517166&r2=517167
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultConnectingIOReactor.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/DefaultConnectingIOReactor.java Mon Mar 12 03:50:32 2007
@@ -158,8 +158,7 @@
if (channel.isConnected()) {
try {
prepareSocket(channel.socket());
- Object attachment = sessionRequest.getAttachment();
- ChannelEntry entry = new ChannelEntry(channel, attachment);
+ ChannelEntry entry = new ChannelEntry(channel, sessionRequest);
addChannel(entry);
} catch (IOException ex) {
sessionRequest.failed(ex);