<core-libs-dev> sun.management.Agent: the properties.putAll API may fail with ConcurrentModifcationException on multi-thread scenario

Deven You youdwei at linux.vnet.ibm.com
Wed Apr 18 06:20:36 UTC 2012


On 04/18/2012 01:34 PM, Mandy Chung wrote:
>
>
> On 4/17/2012 12:33 AM, Deven You wrote:
>>> I think this could still run into CME.  System Properties is not a 
>>> synchronized map and the setter methods (System.setProperty or 
>>> Properties.put method) doesn't synchronize on the Properties object.
>>>
>> Hi Mandy,
>>
>> I didn't catch you. Do you mean there are other setter methods of 
>> System properties in the Agent.java which are not synchronized?
>
> The setter methods I'm referring to are System.setProperty and 
> System.getProperties().put().
>
> Mandy
>
Hi Mandy,

I have gone through the Agent.java, I think other set/put methods 
related to properties are protected properly.

     public static void agentmain using parseString(args) which return a 
properties which is a local var and is not possible to cause concurrent 
problem when call config_props.putAll(arg_props).

     private static synchronized void startLocalManagementAgent() is 
synchronized already.

     private static synchronized void startRemoteManagementAgent(String 
args) is synchronized also.

Could you point where the CME may ocurr?

Thanks a lot!


-- 
Best Regards,

Deven




More information about the core-libs-dev mailing list