[
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)