[ 
https://issues.apache.org/jira/browse/APEXCORE-539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15514021#comment-15514021
 ] 

Vlad Rozov commented on APEXCORE-539:
-------------------------------------

I see the following exception after I changed DefaultAttributeMap to store and 
compare thread with the current thread:
{noformat}
2016-09-22 10:36:46,849 [container-0] ERROR stram.StramLocalCluster run - 
Container container-0 failed
java.util.ConcurrentModificationException: current thread 
Thread[container-0,5,main] existing thread Thread[main,5,main]
        at 
com.datatorrent.api.Attribute$AttributeMap$DefaultAttributeMap.put(Attribute.java:209)
        at 
com.datatorrent.stram.engine.StreamingContainer.setup(StreamingContainer.java:160)
        at 
com.datatorrent.stram.StramLocalCluster$LocalStreamingContainer.run(StramLocalCluster.java:178)
        at 
com.datatorrent.stram.StramLocalCluster$LocalStramChildLauncher.run(StramLocalCluster.java:269)
        at java.lang.Thread.run(Thread.java:745)
{noformat}

Why not to use ConcurrentHashMap instead of HashMap?

> DefaultAttributeMap is not thread safe
> --------------------------------------
>
>                 Key: APEXCORE-539
>                 URL: https://issues.apache.org/jira/browse/APEXCORE-539
>             Project: Apache Apex Core
>          Issue Type: Bug
>            Reporter: Vlad Rozov
>
> DefaultAttributeMap put() and get() methods may be called from different 
> threads and current implementation that uses HashMap is not thread safe.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to