[ 
https://issues.apache.org/jira/browse/IGNITE-21694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Viacheslav Blinov updated IGNITE-21694:
---------------------------------------
    Description: 
Issue detected by SpotBugs. Specifically the warning reported is:
{noformat}
M P WMI_WRONG_MAP_ITERATOR WMI: 
org.apache.ignite.internal.tx.impl.HeapLockManager$WaiterImpl.recalculate() 
makes inefficient use of keySet iterator instead of entrySet iterator  At 
HeapLockManager.java:[line 815]
M P WMI_WRONG_MAP_ITERATOR WMI: 
org.apache.ignite.internal.tx.impl.HeapUnboundedLockManager$WaiterImpl.recalculate()
 makes inefficient use of keySet iterator instead of entrySet iterator  At 
HeapUnboundedLockManager.java:[line 632] {noformat}
This method accesses the value of a Map entry, using a key that was retrieved 
from a keySet iterator. It is more efficient to use an iterator on the entrySet 
of the map, to avoid the Map.get(key) lookup.

Investigate whenever this is a false-positive and we should suppress it, or we 
should make a proper fix.
At the result of investigation corresponding TODO should be removed in 
spotbugs-excludes.xml

  was:
Issue detected by SpotBugs. Specifically the warning reported is:
{noformat}
H M VO_VOLATILE_INCREMENT VO: Increment of volatile field 
org.apache.ignite.internal.tx.impl.TxManagerImpl$TxContext.inflights in 
org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$addInflight$21(boolean[],
 UUID, TxManagerImpl$TxContext)  At TxManagerImpl.java:[line 843]
H M VO_VOLATILE_INCREMENT VO: Increment of volatile field 
org.apache.ignite.internal.tx.impl.TxManagerImpl$TxContext.inflights in 
org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$removeInflight$22(UUID, 
TxManagerImpl$TxContext)  At TxManagerImpl.java:[line 858]
{noformat}

Increments/Decrements of volatile fields aren't atomic. If more than one thread 
is incrementing/decrementing the field at the same time, increments/decrements 
could be lost.

Investigate whenever this is a false-positive and we should suppress it, or we 
should make a proper fix.
At the result of investigation corresponding TODO should be removed in 
spotbugs-excludes.xml


> HeapLockManager/HeapUnboundedLockManager makes inefficient use of keySet 
> iterator instead of entrySet iterator
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-21694
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21694
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Viacheslav Blinov
>            Priority: Major
>
> Issue detected by SpotBugs. Specifically the warning reported is:
> {noformat}
> M P WMI_WRONG_MAP_ITERATOR WMI: 
> org.apache.ignite.internal.tx.impl.HeapLockManager$WaiterImpl.recalculate() 
> makes inefficient use of keySet iterator instead of entrySet iterator  At 
> HeapLockManager.java:[line 815]
> M P WMI_WRONG_MAP_ITERATOR WMI: 
> org.apache.ignite.internal.tx.impl.HeapUnboundedLockManager$WaiterImpl.recalculate()
>  makes inefficient use of keySet iterator instead of entrySet iterator  At 
> HeapUnboundedLockManager.java:[line 632] {noformat}
> This method accesses the value of a Map entry, using a key that was retrieved 
> from a keySet iterator. It is more efficient to use an iterator on the 
> entrySet of the map, to avoid the Map.get(key) lookup.
> Investigate whenever this is a false-positive and we should suppress it, or 
> we should make a proper fix.
> At the result of investigation corresponding TODO should be removed in 
> spotbugs-excludes.xml



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to