One more question, we tried to move the isReusePortAvailable() from 
SocketImpl.java to AbstractPlainSocketImpl.java. However, we found out the 
static block (attached below) inside the AbstractPlainSocketImpl.java never 
being executed when the AbstractPlainSocketImpl.isReusePortAvailable() is 
called which leads to an unsatisfiedlinkerror (net library is not loaded). 

We created a small testing java program which has an abstract class. The static 
block inside the abstract class is executed no problem at all. What did we miss 
here? 

    static {
        java.security.AccessController.doPrivileged(
            new java.security.PrivilegedAction<>() {
                public Void run() {
                    System.loadLibrary("net");
                    return null;
                }
            });
    }

Thanks,
Lucy

-----Original Message-----
From: Volker Simonis [mailto:volker.simo...@gmail.com] 
Sent: Monday, January 04, 2016 11:26 AM
To: Alan Bateman <alan.bate...@oracle.com>
Cc: Lu, Yingqi <yingqi...@intel.com>; Kaczmarek, Eric 
<eric.kaczma...@intel.com>; Viswanathan, Sandhya 
<sandhya.viswanat...@intel.com>; Kharbas, Kishor <kishor.khar...@intel.com>; 
Aundhe, Shirish <shirish.aun...@intel.com>; net-dev@openjdk.java.net
Subject: Re: Patch for adding SO_REUSEPORT socket option

On Mon, Jan 4, 2016 at 8:24 PM, Alan Bateman <alan.bate...@oracle.com> wrote:
>
>
> On 04/01/2016 18:43, Volker Simonis wrote:
>>
>> :
>> Alan, what do you mean by "unknown" platform? Currently, as far as I 
>> know, 0x0200 is used by AIX and MacOS X. Do you suggest to name these 
>> platforms explicitly and set it to 0 otherwise? Leaving the default 
>> at
>> 0x0200 has the advantage that it would implicitly work on other 
>> platforms like HPUX at the risk that it may be the wrong value on 
>> other, yet still unknown platforms. So in general I'm not against 
>> setting it to 0 on unknown platfroms (as this is the most secure
>> setting) but in that case we should definitely name AIX and MacOS X 
>> as "known" platforms.
>
> My concern with defaulting to 0x0200 is that it might be used on a 
> platform where this is not the right value. Defaulting to 0 makes it 
> easier to catch the issue and allows us to includes assertion that the 
> socket option is != 0. If we build on versions of AIX and OSX that 
> don't have SO_REUSEPORT defined then it would be good to get those into the 
> known platform list.
>

Agree!

Lucy, please add the MacOs and AIX cases. No need to do it for HPUX as this is 
not an official OpenJDK platform yet (we'll do that in our internal port).

Thanks,
Volker


> -Alan

Reply via email to