On 2010-05-20 17:19, Mark Hindess wrote:

In message<4bf4f9a4.6050...@gmail.com>, Regis writes:

On 2010-05-20 16:46, Mark Hindess wrote:

In message<4bf4ec09.3090...@gmail.com>, Regis writes:

On 2010-05-19 20:45, Catherine Hope wrote:
I also see these 2 tests failing in the same way.  It seems to be
caused by Regis' commit 944119 "SocketChannelImpl.SocketAdapter's
remote address should be updated after channel connected" on
14/05/2010.  It could be that the tests are invalid though -
the first one is checking that the SocketAddress returned by
getRemoteAddress() is a different object to the one that was passed
to connect(), though as SocketAddress is immutable would this cause
a problem?


The test case expect behaviors to be exactly same with RI, but I don't
think it's a big deal, I intend to delete this assert.

for - testSocket_NonBlock_BasicStatusAfterConnect, isConnected()
should check first, following patch can fix it. And again, the test
failed at same line as BasicStatusAfterConnect.

Following patch can fix these failures, I'd like to commit it if
second committer agree this.

-1

I am +1 for the patch to SocketChannelImpl.java because this fixes
behaviour.

However, I am -1 for the patch to SocketChannelTest.java because we
don't fix broken tests during code freeze.

All right, how about this (create new InetSocketAddress instance everytime):

-1

Fix the behaviour for testSocket_NonBlock_BasicStatusAfterConnect.

Do not make any changes for the other failure - i.e. leave it failing -
and remove it after the code freeze.

-Mark.




Do you mean this?

Index: modules/nio/src/main/java/common/org/apache/harmony/nio/internal/SocketChannelImpl.java
=====================================================================
--- modules/nio/src/main/java/common/org/apache/harmony/nio/internal/SocketChannelImpl.java +++ modules/nio/src/main/java/common/org/apache/harmony/nio/internal/SocketChannelImpl.java @@ -1008,6 +1008,10 @@ class SocketChannelImpl extends SocketChannel implements FileDescriptorHandler {

         @Override
         public InetAddress getInetAddress() {
+            if (!isConnected()) {
+                return null;
+            }
+
if (channel.connectAddress == null && super.getInetAddress() != null) { channel.connectAddress = new InetSocketAddress(super.getInetAddress(), super.getPort());
             }
@@ -1019,6 +1023,9 @@ class SocketChannelImpl extends SocketChannel implements FileDescriptorHandler {

         @Override
         public SocketAddress getRemoteSocketAddress() {
+            if (!isConnected()) {
+                return null;
+            }
if (channel.connectAddress == null && super.getInetAddress() != null) { channel.connectAddress = new InetSocketAddress(super.getInetAddress(), super.getPort());
             }
@@ -1027,6 +1034,9 @@ class SocketChannelImpl extends SocketChannel implements FileDescriptorHandler {

         @Override
         public int getPort() {
+            if (!isConnected()) {
+                return 0;
+            }
if (channel.connectAddress == null && super.getInetAddress() != null) { channel.connectAddress = new InetSocketAddress(super.getInetAddress(), super.getPort());
             }


--
Best Regards,
Regis.

Reply via email to