Thanks. I've fixed it for the next release (changing to ConcurrentHashMap)

- Scott
 
Wesley Wu wrote:
> Or this method sync the wrong map?
>
> private Set<Bean<?>> resolveAllBeans()
>   {
>     synchronized (_beanMap) {
>       LinkedHashSet<Bean<?>> beans = new LinkedHashSet<Bean<?>>();
>
>       for (ArrayList<TypedBean> comp : _selfBeanMap.values()) {
>         for (TypedBean typedBean : comp) {
>           beans.add(typedBean.getBean());
>         }
>       }
>
>       return beans;
>     }
>   }
>
> maybe should synchronized (_selfBeanMap) instead.
>
> -Wesley
>
>
> 2010/11/30 Wesley Wu <wumen...@gmail.com>:
>   
>> 2010-11-30 02:35:13.697 ERROR [Thread-48]
>> c.b.c.j.MessageReceiverDaemon -
>> java.util.ConcurrentModificationException
>>        at java.util.HashMap$HashIterator.nextEntry(HashMap.java:977)
>>        at java.util.HashMap$KeyIterator.next(HashMap.java:1012)
>>        at java.util.HashMap.buildCache(HashMap.java:590)
>>        at java.util.HashMap.resize(HashMap.java:576)
>>        at java.util.HashMap.addEntry(HashMap.java:939)
>>        at java.util.HashMap.put(HashMap.java:477)
>>        at 
>> com.caucho.config.inject.InjectManager.addBeanByType(InjectManager.java:720)
>>        at 
>> com.caucho.config.inject.InjectManager.addBeanByType(InjectManager.java:697)
>>        at 
>> com.caucho.config.inject.InjectManager.addBeanImpl(InjectManager.java:1205)
>>        at 
>> com.caucho.config.inject.InjectManager.addBean(InjectManager.java:1163)
>>        at 
>> com.caucho.config.inject.InjectManager.addBean(InjectManager.java:1133)
>>        at 
>> com.caucho.config.inject.InjectManager.addDiscoveredBean(InjectManager.java:3156)
>>        at 
>> com.caucho.config.inject.InjectManager.discoverBeanImpl(InjectManager.java:3128)
>>        at 
>> com.caucho.config.inject.InjectManager.processPendingAnnotatedTypes(InjectManager.java:2868)
>>        at 
>> com.caucho.config.inject.InjectManager.fillByType(InjectManager.java:1540)
>>        at 
>> com.caucho.config.inject.InjectManager.access$200(InjectManager.java:158)
>>        at 
>> com.caucho.config.inject.InjectManager$FillByType.apply(InjectManager.java:3929)
>>        at 
>> com.caucho.loader.EnvironmentClassLoader.applyVisibleModules(EnvironmentClassLoader.java:703)
>>        at 
>> com.caucho.config.inject.InjectManager.getWebComponent(InjectManager.java:1505)
>>        at 
>> com.caucho.config.inject.InjectManager.resolveRec(InjectManager.java:1369)
>>        at 
>> com.caucho.config.inject.InjectManager.resolve(InjectManager.java:1360)
>>        at 
>> com.caucho.config.inject.InjectManager.getBeans(InjectManager.java:1308)
>>        at 
>> mdi.java.factory.MDIObjectFactory.buildBean(MDIObjectFactory.java:121)
>>        at 
>> com.buysou.cms.jms.MessageDestinationStore$DefaultMessageReceivedCallback.onReceive(MessageDestinationStore.java:168)
>>        at 
>> com.buysou.cms.jms.MessageReceiverDaemon.start(MessageReceiverDaemon.java:61)
>>        at 
>> com.buysou.cms.jms.MessageReceiverDaemon.run(MessageReceiverDaemon.java:42)
>>        at java.lang.Thread.run(Thread.java:619)
>>
>>     
>
>
> _______________________________________________
> resin-interest mailing list
> resin-interest@caucho.com
> http://maillist.caucho.com/mailman/listinfo/resin-interest
>
>   



_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to