-
Bug
-
Resolution: Done
-
Critical
-
14.0.28.Final, 14.0.29.Final
-
None
As of Infinispan 14.0.29.Final, PersistenceManagerImpl.acquireKeyFromContext(...) looks like:
private <K, V, WCT extends WriteCommand> MVCCEntry<K, V> acquireKeyFromContext(InvocationContext ctx, WCT command, Object key, TriPredicate<? super WCT, Object, MVCCEntry<?, ?>> commandKeyPredicate) { //noinspection unchecked MVCCEntry<K, V> entry = (MVCCEntry<K, V>) ctx.lookupEntry(key); if (commandKeyPredicate != null && !commandKeyPredicate.test(command, key, entry) || !entry.isChanged()) { return null; } return entry; }
If InvocationContext.lookupEntry(...) returns null for the specified key, there are 2 possible NPEs:
- The entry.isChanged() call of this method
- If the commandKeyPredicate does not handle a null entry, e.g. the call to entry.isRemoved() from PassivationWriterInterceptor.store(...)
See linked issue for an example of #2.
- causes
-
WFLY-19374 [CLUSTERING] java.lang.NullPointerException 'because "v" is null' when node leaves the cluster
- Resolved