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)