You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Mikhail Loenko <ml...@gmail.com> on 2006/06/06 12:06:00 UTC

RE: svn commit: r412049 - /incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.java

Hi George

Do you have a test that failed? It would be nice to add a regression test...

Thanks,
Mikhail


>-----Original Message-----
>To: harmony-commits@incubator.apache.org
>Subject: svn commit: r412049 -
>/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.jav
>a
>
>Author: gharley
>Date: Tue Jun  6 01:51:43 2006
>New Revision: 412049
>
>URL: http://svn.apache.org/viewvc?rev=412049&view=rev
>Log:
>Fixing NPE problem introduced in HARMONY-500 when machine has more
than one network interface.
>
>Modified:
>
>incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.java
>
>Modified:
>incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.java
>URL:
>http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/j
>ava/net/NetworkInterface.java?rev=412049&r1=412048&r2=412049&view=diff
>==============================================================================
>---
>incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.java
>(original)
>+++
>incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.java
>Tue Jun  6 01:51:43 2006
>@@ -298,15 +298,19 @@
>         }
>
>         for (NetworkInterface netif : interfaces) {
>-            for (InetAddress addr : netif.addresses) {
>-                if (16 == addr.ipaddress.length) {
>-                    if (addr.isLinkLocalAddress() ||
addr.isSiteLocalAddress()) {
>-                        ((Inet6Address) addr).scopedIf = netif;
>-                        ((Inet6Address) addr).ifname = netif.name;
>-                        ((Inet6Address) addr).scope_ifname_set = true;
>+            // Ensure that current NetworkInterface is bound to at least
>+            // one InetAddress before processing
>+            if (netif.addresses != null) {
>+                for (InetAddress addr : netif.addresses) {
>+                    if (16 == addr.ipaddress.length) {
>+                        if (addr.isLinkLocalAddress() ||
addr.isSiteLocalAddress()) {
>+                            ((Inet6Address) addr).scopedIf = netif;
>+                            ((Inet6Address) addr).ifname = netif.name;
>+                            ((Inet6Address) addr).scope_ifname_set = true;
>+                        }
>                     }
>                 }
>-            }
>+            }// end if
>         }
>
>         return (new Vector<NetworkInterface>(Arrays.asList(interfaces)))

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Re: svn commit: r412049 - /incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.java

Posted by George Harley <ge...@googlemail.com>.
Mikhail Loenko wrote:
> Hi George
>
> Do you have a test that failed? It would be nice to add a regression 
> test...
>
> Thanks,
> Mikhail
>

Hi Mikhail,

Yes I did see test failures because of this. Specifically, I saw a NPE 
being thrown from the setUp() method of 
tests.api.java.net.NetworkInterfaceTest so that every test method in 
that class aborted on error. First saw this behaviour yesterday but - 
given that no one else was reporting it - assumed it might be a 
configuration problem on my part (wouldn't be the first time). However, 
on returning to the matter this morning I saw that the problem was 
actually down to the fact that while my workstation has multiple network 
interfaces (e.g a wireless network adapter, a "wired" Ethernet network 
adapter) only one was bound to an address when the test was run. 
Subsequently, only one of the corresponding array of NetworkInterface 
instances actually has an InetAddress.

I first saw this "multiple adapters" problem a couple of months back 
when attempting to dig the NetworkInterfaceTest from out of the test 
excludes list. Check the comments I added in the setUp() method. So from 
my perspective, the test suite did it's job of drawing attention to an 
error although it was dependent on the kind of hardware that was running 
the test. One of the strengths of having such a diverse group of folks - 
and their workstations - involved in this I suppose.

Best regards,
George


>
>> -----Original Message-----
>> To: harmony-commits@incubator.apache.org
>> Subject: svn commit: r412049 -
>> /incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.jav 
>>
>> a
>>
>> Author: gharley
>> Date: Tue Jun  6 01:51:43 2006
>> New Revision: 412049
>>
>> URL: http://svn.apache.org/viewvc?rev=412049&view=rev
>> Log:
>> Fixing NPE problem introduced in HARMONY-500 when machine has more
> than one network interface.
>>
>> Modified:
>>
>> incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.java 
>>
>>
>> Modified:
>> incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.java 
>>
>> URL:
>> http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/j 
>>
>> ava/net/NetworkInterface.java?rev=412049&r1=412048&r2=412049&view=diff
>> ============================================================================== 
>>
>> ---
>> incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.java 
>>
>> (original)
>> +++
>> incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/NetworkInterface.java 
>>
>> Tue Jun  6 01:51:43 2006
>> @@ -298,15 +298,19 @@
>>         }
>>
>>         for (NetworkInterface netif : interfaces) {
>> -            for (InetAddress addr : netif.addresses) {
>> -                if (16 == addr.ipaddress.length) {
>> -                    if (addr.isLinkLocalAddress() ||
> addr.isSiteLocalAddress()) {
>> -                        ((Inet6Address) addr).scopedIf = netif;
>> -                        ((Inet6Address) addr).ifname = netif.name;
>> -                        ((Inet6Address) addr).scope_ifname_set = true;
>> +            // Ensure that current NetworkInterface is bound to at 
>> least
>> +            // one InetAddress before processing
>> +            if (netif.addresses != null) {
>> +                for (InetAddress addr : netif.addresses) {
>> +                    if (16 == addr.ipaddress.length) {
>> +                        if (addr.isLinkLocalAddress() ||
> addr.isSiteLocalAddress()) {
>> +                            ((Inet6Address) addr).scopedIf = netif;
>> +                            ((Inet6Address) addr).ifname = netif.name;
>> +                            ((Inet6Address) addr).scope_ifname_set = 
>> true;
>> +                        }
>>                     }
>>                 }
>> -            }
>> +            }// end if
>>         }
>>
>>         return (new Vector<NetworkInterface>(Arrays.asList(interfaces)))
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org