JongYoon Lim created HAMA-971:
---------------------------------

             Summary: An increment to a volatile field isn't atomic
                 Key: HAMA-971
                 URL: https://issues.apache.org/jira/browse/HAMA-971
             Project: Hama
          Issue Type: Bug
          Components: bsp core
            Reporter: JongYoon Lim
            Priority: Minor


I found a defect from FindBugs Analysis.
{code}
// AsyncRcvdMsgCheckpointImpl.java
volatile private long checkpointMessageCount;
...
++checkpointMessageCount;
{code}

{code}
// Server.java
private volatile int rpcCount = 0; // number of outstanding rpcs
...
rpcCount--;
rpcCount++;
{code}

This code increments a volatile field. Increments of volatile fields aren't 
atomic. If more than one thread is incrementing the field at the same time, 
increments could be lost.

I think *AtomicInteger* and *AtomicLong* can be used instead of volatile 
fields. 



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

Reply via email to