[Helma-user] java.util.ConcurrentModificationException on app.addRepository

Hannes Wallnoefer hannes at helma.at
Thu Jul 17 13:22:57 CEST 2008


2008/7/17 Bernhard Fröhlich <decke at bluelife.at>:
>> Hello list,
>>
>> we load our widgets on helma start with app.addRepository and sometimes we
>> get the following error code:
>>
>> ...
>> [2008/07/17 11:19:23] [INFO] START INFO load widgets [Application
>> twoday_w1_s2]
>> [2008/07/17 11:19:23] [INFO] ---- adding repository
>> C:\helma-1.6.2\apps\twoday_w1_1_1\core\widgets\amazon\code
>> [2008/07/17 11:19:23] [ERROR] null:
>> java.util.ConcurrentModificationException
>> java.util.ConcurrentModificationException
>>         at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
>>         at java.util.HashMap$ValueIterator.next(HashMap.java:821)
>>         at
>> helma.framework.core.TypeManager.checkRepositories(TypeManager.java:204)
>>         at
>> helma.framework.core.TypeManager.checkPrototypes(TypeManager.java:124)
>>         at
>> helma.scripting.rhino.RhinoCore.updatePrototypes(RhinoCore.java:330)
>>         at
>> helma.scripting.rhino.RhinoEngine.enterContext(RhinoEngine.java:174)
>>         at
>> helma.framework.core.RequestEvaluator.run(RequestEvaluator.java:172)
>>         at java.lang.Thread.run(Thread.java:619)
>> [2008/07/17 11:19:23] [INFO] ---- adding repository
>> C:\helma-1.6.2\apps\twoday_w1_1_1\core\widgets\archive\code
>> [2008/07/17 11:19:23] [INFO] ---- adding repository
>> C:\helma-1.6.2\apps\twoday_w1_1_1\core\widgets\credits\code
>> ...
>> the error is reproduceable on some machines (windows, linux) under
>> helma1.6.0 and helma 1.6.2, java1.6.0_01 and java1.6.0_06. it seems to be
>> a
>> racing condition?
>
>
> I am not familiar with the Helma code but as far as i can tell there seems
> to be a missing synchronisation in TypeManager.java:checkRepositories()
> because the Iterator is not protected from getting invalid.
>
> So it seems like an helma bug - would you mind creating an bugreport?

Yes, it's definitely a helma bug, so please file a bug report.

I'm not sure just adding synchronization would help, as it could be
the same thread inserting into the prototype map, or synchronization
could result in  a deadlock. It's probably worth a try, though.

hannes

> Bernhard Fröhlich
>
>
> _______________________________________________
> Helma-user mailing list
> Helma-user at helma.org
> http://helma.org/mailman/listinfo/helma-user
>


More information about the Helma-user mailing list