RFR: 8042906: Remove use of reflection in ORB

Seán Coffey sean.coffey at oracle.com
Tue May 13 09:34:49 UTC 2014

thanks for the comments. I hit a build issue when introducing some 
lambda syntax to the corba repo : 

That's fixed now and I can continue with the corba push. I've cleaned up 
the ORB class to make better use of generics and the diamond operator. 
Removed some unused package imports also. Taken Daniel's suggestion to 
use ConcurrentHashMap on board (and removed the sync block)



On 12/05/2014 14:35, Mark Sheppard wrote:
> OK thanks Chris and Daniel ... I see my misinterpretation now
> regards
> Mark
> On 12/05/2014 13:46, Daniel Fuchs wrote:
>> Hi Mark,
>> AFAIKS computeIfAbsent does what we want:
>> <http://docs.oracle.com/javase/8/docs/api/java/util/Map.html#computeIfAbsent-K-java.util.function.Function-> 
>> It seems that putIfAbsent would not though. This is indeed confusing.
>> I wish putIfAbsent had been specified similarly to
>> computeIfAbsent...
>> best regards,
>> -- daniel
>> ConcurrentHashMap seems to have something more
>> On 5/12/14 1:33 PM, Mark Sheppard wrote:
>>> If I read the javdoc correctly neither computeIfAbsent nor putIfAbsent
>>> seem to match the
>>> previous semantics of the if statement?
>>> computeIfAbsent: "If the value for the specified key is present and
>>> non-null, attempts to compute a new mapping given the key and its
>>> current mapped value."
>>> or
>>> "If the specified key is not already associated with a value (or is
>>> mapped to |null|), attempts to compute its value using the given 
>>> mapping
>>> function and enters it into this map unless |null|. "
>>> my interpretation is this is relevant if value if there exist a value
>>> and you want to update?
>>> putIfAbsent: "If the specified key is not already associated with a
>>> value (or is mapped to |null|) associates it with the given value and
>>> returns |null|, else returns the current value."
>>> in this case we can have null value returned
>>> previous semantics were if the PM doesn't exist then instantiate and
>>> cache it in the hashtable. return the PM - no null value returned
>>> maybe I'm misinterpreting the docs
>>> regards
>>> Mark
>>> On 12/05/2014 08:52, Seán Coffey wrote:
>>>> Good tip Alan/Chris.
>>>> I'll make that change and push.
>>>> Regards,
>>>> Sean.
>>>> On 12 May 2014 07:17:04 GMT+01:00, Alan Bateman
>>>> <Alan.Bateman at oracle.com> wrote:
>>>>> On 11/05/2014 21:56, Seán Coffey wrote:
>>>>>> Now that JDK 8 is the official build bootstrap JDK for JDK 9, we can
>>>>>> remove use of reflection in ORB code to access the applet context.
>>>>>> bug report : https://bugs.openjdk.java.net/browse/JDK-8042906
>>>>>> webrev : http://cr.openjdk.java.net/~coffeys/webrev.8042906/webrev/
>>>>> I agree with Chris that computeIfAbsent is best here, that was 
>>>>> also the
>>>>> suggestion back in early April before the bootstrapping issue came 
>>>>> up.
>>>>> In any case, it's good you are re-visiting this to clean it up.
>>>>> -Alan

More information about the core-libs-dev mailing list