You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by as...@apache.org on 2011/07/08 22:06:16 UTC
svn commit: r1144472 - in
/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio:
DefaultNHttpClientConnection.java DefaultNHttpServerConnection.java
reactor/IOSessionImpl.java
Author: asankha
Date: Fri Jul 8 20:06:16 2011
New Revision: 1144472
URL: http://svn.apache.org/viewvc?rev=1144472&view=rev
Log:
fix possible NPE if the connection is closed - and the address is null
Modified:
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java?rev=1144472&r1=1144471&r2=1144472&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java Fri Jul 8 20:06:16 2011
@@ -29,6 +29,7 @@ package org.apache.http.impl.nio;
import java.io.IOException;
import java.net.InetSocketAddress;
+import java.net.SocketAddress;
import org.apache.http.HttpEntity;
import org.apache.http.HttpEntityEnclosingRequest;
@@ -261,11 +262,18 @@ public class DefaultNHttpClientConnectio
public String toString() {
StringBuilder buf = new StringBuilder();
- if (this.session.getRemoteAddress() instanceof InetSocketAddress &&
- this.session.getLocalAddress() instanceof InetSocketAddress) {
+ final SocketAddress remoteAddress = this.session.getRemoteAddress();
+ final SocketAddress localAddress = this.session.getLocalAddress();
- final InetSocketAddress remote = ((InetSocketAddress) this.session.getRemoteAddress());
- final InetSocketAddress local = ((InetSocketAddress) this.session.getLocalAddress());
+ if (remoteAddress == null || localAddress == null) {
+ return "[CLOSED]";
+ }
+
+ if (remoteAddress instanceof InetSocketAddress &&
+ localAddress instanceof InetSocketAddress) {
+
+ final InetSocketAddress remote = ((InetSocketAddress) remoteAddress);
+ final InetSocketAddress local = ((InetSocketAddress) localAddress);
buf.append(local.getAddress() != null ? local.getAddress().getHostAddress() : local.getAddress())
.append(':')
@@ -276,9 +284,9 @@ public class DefaultNHttpClientConnectio
.append(remote.getPort());
} else {
- buf.append(this.session.getLocalAddress())
+ buf.append(localAddress)
.append("->")
- .append(this.session.getRemoteAddress());
+ .append(remoteAddress);
}
return buf.toString();
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java?rev=1144472&r1=1144471&r2=1144472&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java Fri Jul 8 20:06:16 2011
@@ -29,6 +29,7 @@ package org.apache.http.impl.nio;
import java.io.IOException;
import java.net.InetSocketAddress;
+import java.net.SocketAddress;
import org.apache.http.HttpEntity;
import org.apache.http.HttpEntityEnclosingRequest;
@@ -263,11 +264,18 @@ public class DefaultNHttpServerConnectio
public String toString() {
StringBuilder buf = new StringBuilder();
- if (this.session.getRemoteAddress() instanceof InetSocketAddress &&
- this.session.getLocalAddress() instanceof InetSocketAddress) {
+ final SocketAddress remoteAddress = this.session.getRemoteAddress();
+ final SocketAddress localAddress = this.session.getLocalAddress();
- final InetSocketAddress remote = ((InetSocketAddress) this.session.getRemoteAddress());
- final InetSocketAddress local = ((InetSocketAddress) this.session.getLocalAddress());
+ if (remoteAddress == null || localAddress == null) {
+ return "[CLOSED]";
+ }
+
+ if (remoteAddress instanceof InetSocketAddress &&
+ localAddress instanceof InetSocketAddress) {
+
+ final InetSocketAddress remote = ((InetSocketAddress) remoteAddress);
+ final InetSocketAddress local = ((InetSocketAddress) localAddress);
buf.append(remote.getAddress() != null ? remote.getAddress().getHostAddress() : remote.getAddress())
.append(':')
@@ -278,9 +286,9 @@ public class DefaultNHttpServerConnectio
.append(local.getPort());
} else {
- buf.append(this.session.getRemoteAddress())
+ buf.append(remoteAddress)
.append("->")
- .append(this.session.getLocalAddress());
+ .append(localAddress);
}
return buf.toString();
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java?rev=1144472&r1=1144471&r2=1144472&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java Fri Jul 8 20:06:16 2011
@@ -312,24 +312,29 @@ public class IOSessionImpl implements IO
public synchronized String toString() {
StringBuilder buffer = new StringBuilder();
- if (getRemoteAddress() instanceof InetSocketAddress &&
- getLocalAddress() instanceof InetSocketAddress) {
+ final SocketAddress remoteAddress = getRemoteAddress();
+ final SocketAddress localAddress = getLocalAddress();
- final InetSocketAddress remote = ((InetSocketAddress) getRemoteAddress());
- final InetSocketAddress local = ((InetSocketAddress) getLocalAddress());
-
- buffer.append(local.getAddress() != null ? local.getAddress().getHostAddress() : local.getAddress())
- .append(':')
- .append(local.getPort())
- .append("<->")
- .append(remote.getAddress() != null ? remote.getAddress().getHostAddress() : remote.getAddress())
- .append(':')
- .append(remote.getPort());
-
- } else {
- buffer.append(getLocalAddress())
- .append("<->")
- .append(getRemoteAddress());
+ if (remoteAddress != null && localAddress != null) {
+ if (remoteAddress instanceof InetSocketAddress &&
+ localAddress instanceof InetSocketAddress) {
+
+ final InetSocketAddress remote = ((InetSocketAddress) remoteAddress);
+ final InetSocketAddress local = ((InetSocketAddress) localAddress);
+
+ buffer.append(local.getAddress() != null ? local.getAddress().getHostAddress() : local.getAddress())
+ .append(':')
+ .append(local.getPort())
+ .append("<->")
+ .append(remote.getAddress() != null ? remote.getAddress().getHostAddress() : remote.getAddress())
+ .append(':')
+ .append(remote.getPort());
+
+ } else {
+ buffer.append(localAddress)
+ .append("<->")
+ .append(remoteAddress);
+ }
}
buffer.append("[");
Re: svn commit: r1144472
Posted by "Asankha C. Perera" <as...@apache.org>.
Hi Oleg
> I refactored your changes in the trunk slightly. Hope it is ok. Please
> double-check.
Looks ok.. thanks!
asankha
--
Asankha C. Perera
AdroitLogic, http://adroitlogic.org
http://esbmagic.blogspot.com
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org
Re: svn commit: r1144472
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Fri, 2011-07-08 at 20:06 +0000, asankha@apache.org wrote:
> Author: asankha
> Date: Fri Jul 8 20:06:16 2011
> New Revision: 1144472
>
> URL: http://svn.apache.org/viewvc?rev=1144472&view=rev
> Log:
> fix possible NPE if the connection is closed - and the address is null
>
>
> Modified:
> httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java
> httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java
> httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOSessionImpl.java
>
Asankha
I refactored your changes in the trunk slightly. Hope it is ok. Please
double-check.
Oleg
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org