[JBoss JIRA] (ISPN-6118) CacheNotifierImplInitialTransferDistTest random failures
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-6118?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-6118:
------------------------------------
Fix Version/s: 8.2.0.Final
(was: 8.2.0.CR1)
> CacheNotifierImplInitialTransferDistTest random failures
> --------------------------------------------------------
>
> Key: ISPN-6118
> URL: https://issues.jboss.org/browse/ISPN-6118
> Project: Infinispan
> Issue Type: Bug
> Components: Test Suite - Core
> Affects Versions: 8.1.0.Final
> Reporter: Dan Berindei
> Labels: testsuite_stability
> Fix For: 8.2.0.Final
>
>
> The failures are probably related to the default consistent hash factory change.
> {noformat}
> 18:54:56,255 ERROR (testng-CacheNotifierImplInitialTransferDistTest:) [UnitTestTestNGListener] Test testCreateAfterIterationBeganAndSegmentNotCompleteValueNonOwnerClustered(org.infinispan.notifications.cachelistener.CacheNotifierImplInitialTransferDistTest) failed.
> java.util.concurrent.TimeoutException: Timed out waiting for event pre_complete_segment_invoked
> at org.infinispan.test.fwk.CheckPoint.awaitStrict(CheckPoint.java:43) ~[test-classes/:?]
> at org.infinispan.test.fwk.CheckPoint.awaitStrict(CheckPoint.java:33) ~[test-classes/:?]
> at org.infinispan.notifications.cachelistener.CacheNotifierImplInitialTransferDistTest.testIterationBeganAndSegmentNotComplete(CacheNotifierImplInitialTransferDistTest.java:519) ~[test-classes/:?]
> at org.infinispan.notifications.cachelistener.CacheNotifierImplInitialTransferDistTest.testCreateAfterIterationBeganAndSegmentNotCompleteValueNonOwnerClustered(CacheNotifierImplInitialTransferDistTest.java:622) ~[test-classes/:?]
> {noformat}
> {noformat}
> 18:55:06,637 ERROR (testng-CacheNotifierImplInitialTransferDistTest:) [UnitTestTestNGListener] Test testCreateAfterIterationBeganAndSegmentNotCompleteValueOwnerClustered(org.infinispan.notifications.cachelistener.CacheNotifierImplInitialTransferDistTest) failed.
> java.util.concurrent.TimeoutException: Timed out waiting for event pre_complete_segment_invoked
> at org.infinispan.test.fwk.CheckPoint.awaitStrict(CheckPoint.java:43) ~[test-classes/:?]
> at org.infinispan.test.fwk.CheckPoint.awaitStrict(CheckPoint.java:33) ~[test-classes/:?]
> at org.infinispan.notifications.cachelistener.CacheNotifierImplInitialTransferDistTest.testIterationBeganAndSegmentNotComplete(CacheNotifierImplInitialTransferDistTest.java:519) ~[test-classes/:?]
> at org.infinispan.notifications.cachelistener.CacheNotifierImplInitialTransferDistTest.testCreateAfterIterationBeganAndSegmentNotCompleteValueOwnerClustered(CacheNotifierImplInitialTransferDistTest.java:633) ~[test-classes/:?]
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 2 months
[JBoss JIRA] (ISPN-6285) SharedReplMassIndexTest hanging during cluster shutdown
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-6285?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-6285:
------------------------------------
Fix Version/s: 8.2.0.Final
(was: 8.2.0.CR1)
> SharedReplMassIndexTest hanging during cluster shutdown
> -------------------------------------------------------
>
> Key: ISPN-6285
> URL: https://issues.jboss.org/browse/ISPN-6285
> Project: Infinispan
> Issue Type: Bug
> Components: Test Suite - Query
> Affects Versions: 8.2.0.Beta2
> Reporter: Dan Berindei
> Labels: testsuite_stability
> Fix For: 8.2.0.Final
>
>
> No logs for now, just a log from CI showing the query test suite hanging for 2+ hours, and this is the only active thread at the end:
> {noformat}
> "testng-SharedReplMassIndexTest" #15 prio=5 os_prio=0 tid=0x00007fc4a07ca000 nid=0x7314 waiting on condition [0x00007fc465efb000]
> java.lang.Thread.State: TIMED_WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for <0x00000000d9d092b8> (a java.util.concurrent.CountDownLatch$Sync)
> at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328)
> at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:277)
> at org.hibernate.search.backend.impl.lucene.SyncWorkProcessor.shutdown(SyncWorkProcessor.java:117)
> at org.hibernate.search.backend.impl.lucene.LuceneBackendQueueProcessor.close(LuceneBackendQueueProcessor.java:69)
> at org.infinispan.query.indexmanager.LocalIndexingBackend.flushAndClose(LocalIndexingBackend.java:48)
> at org.infinispan.query.indexmanager.ClusteredSwitchingBackend.closeBackend(ClusteredSwitchingBackend.java:227)
> at org.infinispan.query.indexmanager.ClusteredSwitchingBackend.shutdown(ClusteredSwitchingBackend.java:216)
> at org.infinispan.query.indexmanager.InfinispanBackendQueueProcessor.close(InfinispanBackendQueueProcessor.java:79)
> at org.hibernate.search.indexes.spi.DirectoryBasedIndexManager.destroy(DirectoryBasedIndexManager.java:78)
> at org.hibernate.search.indexes.impl.IndexManagerHolder.stop(IndexManagerHolder.java:197)
> - locked <0x00000000a3832138> (a org.hibernate.search.indexes.impl.IndexManagerHolder)
> at org.hibernate.search.engine.impl.ImmutableSearchFactory.close(ImmutableSearchFactory.java:230)
> at org.hibernate.search.engine.impl.MutableSearchFactory.close(MutableSearchFactory.java:137)
> at org.infinispan.query.impl.LifecycleManager.cacheStopping(LifecycleManager.java:296)
> at org.infinispan.factories.ComponentRegistry.stop(ComponentRegistry.java:244)
> at org.infinispan.cache.impl.CacheImpl.stop(CacheImpl.java:869)
> at org.infinispan.cache.impl.CacheImpl.stop(CacheImpl.java:864)
> at org.infinispan.test.TestingUtil.killCaches(TestingUtil.java:798)
> at org.infinispan.test.TestingUtil.killCacheManagers(TestingUtil.java:633)
> at org.infinispan.test.TestingUtil.killCacheManagers(TestingUtil.java:626)
> at org.infinispan.test.TestingUtil.killCacheManagers(TestingUtil.java:622)
> at org.infinispan.test.MultipleCacheManagersTest.destroy(MultipleCacheManagersTest.java:87)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
> at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
> at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
> at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
> at org.testng.internal.TestMethodWorker.invokeAfterClassMethods(TestMethodWorker.java:225)
> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:114)
> at org.testng.TestRunner.privateRun(TestRunner.java:767)
> at org.testng.TestRunner.run(TestRunner.java:617)
> at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
> at org.testng.SuiteRunner.access$000(SuiteRunner.java:38)
> at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:382)
> at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 2 months
[JBoss JIRA] (ISPN-6277) Avoid NullPointerException errors in the core test suite logs
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-6277?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-6277:
------------------------------------
Fix Version/s: 8.2.0.Final
(was: 8.2.0.CR1)
> Avoid NullPointerException errors in the core test suite logs
> -------------------------------------------------------------
>
> Key: ISPN-6277
> URL: https://issues.jboss.org/browse/ISPN-6277
> Project: Infinispan
> Issue Type: Task
> Components: Test Suite - Core
> Affects Versions: 8.2.0.Beta2
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Fix For: 8.2.0.Final
>
>
> Some tests log {{NullPointerException}}-caused error messages when they pass, which makes it hard to tell if it's a real problem or not.
> {{CacheManagerTest}}: cluster executor tests throw {{NullPointerException}} explicitly.
> {noformat}
> 11:20:04,030 WARN (remote-thread-CacheManagerTest-NodeN-p1091-t1:) [GlobalInboundInvocationHandler] ISPN000071: Caught exception when handling command org.infinispan.manager.impl.ReplicableCommandRunnable@6c20c6c7
> java.lang.NullPointerException
> at org.infinispan.manager.CacheManagerTest$13.lambda$call$81c80a4a$1(CacheManagerTest.java:594) ~[test-classes/:?]
> at org.infinispan.manager.impl.ReplicableCommandRunnable.perform(ReplicableCommandRunnable.java:33) ~[classes/:?]
> at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler$2.run(GlobalInboundInvocationHandler.java:158) [classes/:?]
> at org.infinispan.util.concurrent.BlockingTaskAwareExecutorServiceImpl$RunnableWrapper.run(BlockingTaskAwareExecutorServiceImpl.java:199) [classes/:?]
> {noformat}
> Various tests, during cluster shutdown: an incoming {{CacheTopologyControlCommand}} can re-create the {{ClusterTopologyManager}} component, and call {{handleRebalanceCompleted()}} without {{start()}}.
> {noformat}
> 11:21:24,637 WARN (remote-thread-NumOwnersNodeStopInSequenceTest-NodeY-p8288-t6:) [CacheTopologyControlCommand] ISPN000071: Caught exception when handling command CacheTopologyControlCommand{cache=___defaultcache, type=REBALANCE_CONFIRM, sender=NumOwnersNodeStopInSequenceTest-NodeAB-56593, joinInfo=null, topologyId=9, rebalanceId=0, currentCH=null, pendingCH=null, availabilityMode=null, actualMembers=null, throwable=null, viewId=3}
> java.lang.NullPointerException
> at org.infinispan.topology.ClusterTopologyManagerImpl.handleRebalanceCompleted(ClusterTopologyManagerImpl.java:219) ~[classes/:?]
> at org.infinispan.topology.CacheTopologyControlCommand.doPerform(CacheTopologyControlCommand.java:176) ~[classes/:?]
> at org.infinispan.topology.CacheTopologyControlCommand.perform(CacheTopologyControlCommand.java:153) [classes/:?]
> at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler$2.run(GlobalInboundInvocationHandler.java:158) [classes/:?]
> at org.infinispan.util.concurrent.BlockingTaskAwareExecutorServiceImpl$RunnableWrapper.run(BlockingTaskAwareExecutorServiceImpl.java:199) [classes/:?]
> {noformat}
> {{InitialClusterSizeTest}}: stops the cache manager after if failed to start, and {{DefaultCacheManager.stop()}} throws an exception because the internal cache registry was not registered.
> {noformat}
> 11:21:29,827 WARN (testng-InitialClusterSizeTest:) [TestingUtil] Problems killing cache manager org.infinispan.manager.DefaultCacheManager@1d9fdcf9@Address:null
> java.lang.NullPointerException
> at org.infinispan.manager.DefaultCacheManager.stop(DefaultCacheManager.java:684) ~[classes/:?]
> at org.infinispan.test.TestingUtil.killCacheManagers(TestingUtil.java:643) [test-classes/:?]
> at org.infinispan.test.MultipleCacheManagersTest.clearContent(MultipleCacheManagersTest.java:101) [test-classes/:?]
> {noformat}
> {{DistributedExecutorTest}}: {{testCancelAndGet}} uses a {{LongRunningCallable}}, but never registers the barrier it needs in the cache.
> {noformat}
> 11:22:41,320 WARN (remote-thread-ReplSyncDistributedExecutorTest-NodeX-p15029-t5:) [NonTotalOrderPerCacheInboundInvocationHandler] ISPN000071: Caught exception when handling command DistributedExecuteCommand [cache=Cache 'DistributedExecutorTest-REPL_SYNC'@ReplSyncDistributedExecutorTest-NodeX-55556, keys=[], callable=org.infinispan.distexec.DistributedExecutorTest$LongRunningCallable@78655960]
> java.lang.NullPointerException
> at org.infinispan.distexec.DistributedExecutorTest$LongRunningCallable.call(DistributedExecutorTest.java:346) ~[test-classes/:?]
> at org.infinispan.distexec.DistributedExecutorTest$LongRunningCallable.call(DistributedExecutorTest.java:331) ~[test-classes/:?]
> at org.infinispan.commands.read.DistributedExecuteCommand.perform(DistributedExecuteCommand.java:107) ~[classes/:?]
> at org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokePerform(BasePerCacheInboundInvocationHandler.java:92) [classes/:?]
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:34) [classes/:?]
> {noformat}
> {{NonTxStateTransferOverwritingValue2Test}}: {{ClusteringDependentLogicDelegator.commitEntry()}} doesn't handle {{ClearCacheEntry}} correctly (used for {{ClearCommand}}).
> {noformat}
> 11:27:16,565 ERROR (remote-thread-NonTxStateTransferOverwritingValue2Test-NodeB-p39829-t5:) [InvocationContextInterceptor] ISPN000136: Error executing command ClearCommand, writing keys []
> java.lang.NullPointerException
> at org.infinispan.commons.hash.MurmurHash3.hash(MurmurHash3.java:397) ~[infinispan-commons-8.2.0-SNAPSHOT.jar:8.2.0-SNAPSHOT]
> at org.infinispan.distribution.ch.impl.HashFunctionPartitioner.getSegment(HashFunctionPartitioner.java:51) ~[classes/:?]
> at org.infinispan.distribution.group.PartitionerConsistentHash.getSegment(PartitionerConsistentHash.java:47) ~[classes/:?]
> at org.infinispan.distribution.group.PartitionerConsistentHash.isKeyLocalToNode(PartitionerConsistentHash.java:87) ~[classes/:?]
> at org.infinispan.distribution.impl.DistributionManagerImpl.getLocality(DistributionManagerImpl.java:71) ~[classes/:?]
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$DistributionLogic.localNodeIsOwner(ClusteringDependentLogic.java:469) ~[classes/:?]
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$DistributionLogic.commitSingleEntry(ClusteringDependentLogic.java:500) ~[classes/:?]
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:115) ~[classes/:?]
> at org.infinispan.test.fwk.ClusteringDependentLogicDelegator.commitEntry(ClusteringDependentLogicDelegator.java:49) ~[test-classes/:?]
> at org.infinispan.distribution.rehash.NonTxStateTransferOverwritingValue2Test$3.commitEntry(NonTxStateTransferOverwritingValue2Test.java:212) ~[test-classes/:?]
> at org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:479) ~[classes/:?]
> at org.infinispan.interceptors.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:655) ~[classes/:?]
> at org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:465) ~[classes/:?]
> {noformat}
> {{StateResponseOrderingTest}}: test was calling {{PerCacheInboundInvocationHandler.handle(command)}} without first calling {{StateResponseCommand.init()}}
> {noformat}
> 11:27:18,781 WARN (testng-StateResponseOrderingTest:) [NonTotalOrderTxPerCacheInboundInvocationHandler] ISPN000071: Caught exception when handling command StateResponseCommand{cache=___defaultcache, stateChunks=[StateChunk{segmentId=0, cacheEntries=1, isLastChunk=true}, StateChunk{segmentId=1, cacheEntries=1, isLastChunk=true}], origin=StateResponseOrderingTest-NodeD-39668, topologyId=6}
> java.lang.NullPointerException
> at org.infinispan.statetransfer.StateResponseCommand.perform(StateResponseCommand.java:67) ~[classes/:?]
> at org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokePerform(BasePerCacheInboundInvocationHandler.java:92) [classes/:?]
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:34) [classes/:?]
> at org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.handleRunnable(BasePerCacheInboundInvocationHandler.java:132) [classes/:?]
> at org.infinispan.remoting.inboundhandler.NonTotalOrderTxPerCacheInboundInvocationHandler.handle(NonTotalOrderTxPerCacheInboundInvocationHandler.java:99) [classes/:?]
> at org.infinispan.distribution.rehash.StateResponseOrderingTest.testSimulatedOldStateResponse(StateResponseOrderingTest.java:113) [test-classes/:?]
> {noformat}
> {{ParserOverrideTest}}, {{XmlFileParsingTest}}: {{ClusterTopologyManagerImpl}} view handler can execute after {{JGroupsTransport}} was stopped and {{dispatcher}} was set to {{null}}.
> {noformat}
> 11:25:46,357 WARN (transport-thread-ParserOverrideTest-NodeA-p30089-t1:) [ClusterTopologyManagerImpl] ISPN000197: Error updating cluster member list
> java.lang.NullPointerException
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotelyAsync(JGroupsTransport.java:612) ~[classes/:?]
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:533) ~[classes/:?]
> at org.infinispan.topology.ClusterTopologyManagerImpl.confirmMembersAvailable(ClusterTopologyManagerImpl.java:444) ~[classes/:?]
> at org.infinispan.topology.ClusterTopologyManagerImpl.updateCacheMembers(ClusterTopologyManagerImpl.java:431) ~[classes/:?]
> at org.infinispan.topology.ClusterTopologyManagerImpl.handleClusterView(ClusterTopologyManagerImpl.java:354) ~[classes/:?]
> at org.infinispan.topology.ClusterTopologyManagerImpl.lambda$start$0(ClusterTopologyManagerImpl.java:132) ~[classes/:?]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_74]
> at org.infinispan.executors.SemaphoreCompletionService$QueueingTask.runInternal(SemaphoreCompletionService.java:173) [classes/:?]
> at org.infinispan.executors.SemaphoreCompletionService$QueueingTask.run(SemaphoreCompletionService.java:151) [classes/:?]
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 2 months
[JBoss JIRA] (ISPN-3938) AdvancedAsyncCacheLoader.process() concurrency issues
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-3938?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-3938:
------------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> AdvancedAsyncCacheLoader.process() concurrency issues
> -----------------------------------------------------
>
> Key: ISPN-3938
> URL: https://issues.jboss.org/browse/ISPN-3938
> Project: Infinispan
> Issue Type: Bug
> Components: Core, Loaders and Stores
> Affects Versions: 6.0.0.Final
> Reporter: Dan Berindei
> Assignee: Sebastian Łaskawiec
> Fix For: 8.2.0.CR1
>
>
> {{AdvancedAsyncCacheLoader.process()}} calls {{advancedLoader().process()}} to collect all the keys in the store, but the HashSet used to collect the keys it not thread-safe. This can cause problems, e.g. during state transfer:
> {noformat}
> WARN cheTopologyControlCommand | ISPN000071: Caught exception when handling command CacheTopologyControlCommand{cache=sessions, type=CH_UPDATE, sender=alfie-lt-46127, joinInfo=null, topologyId=3, currentCH=DefaultConsistentHash{numSegments=60, numOwners=1, members=[alfie-lt-46127]}, pendingCH=null, throwable=null, viewId=1}java.util.ConcurrentModificationException
> at java.util.HashMap$HashIterator.nextEntry(HashMap.java:926)
> at java.util.HashMap$KeyIterator.next(HashMap.java:960)
> at org.infinispan.persistence.async.AdvancedAsyncCacheLoader.process(AdvancedAsyncCacheLoader.java:80)
> at org.infinispan.persistence.manager.PersistenceManagerImpl.processOnAllStores(PersistenceManagerImpl.java:414)
> at org.infinispan.statetransfer.StateConsumerImpl.invalidateSegments(StateConsumerImpl.java:910)
> at org.infinispan.statetransfer.StateConsumerImpl.onTopologyUpdate(StateConsumerImpl.java:393)
> at org.infinispan.statetransfer.StateTransferManagerImpl.doTopologyUpdate(StateTransferManagerImpl.java:178)
> at org.infinispan.statetransfer.StateTransferManagerImpl.access$000(StateTransferManagerImpl.java:38)
> at org.infinispan.statetransfer.StateTransferManagerImpl$1.updateConsistentHash(StateTransferManagerImpl.java:100)
> at org.infinispan.topology.LocalTopologyManagerImpl.handleConsistentHashUpdate(LocalTopologyManagerImpl.java:191)
> at org.infinispan.topology.CacheTopologyControlCommand.doPerform(CacheTopologyControlCommand.java:152)
> at org.infinispan.topology.CacheTopologyControlCommand.perform(CacheTopologyControlCommand.java:124)
> at org.infinispan.topology.ClusterTopologyManagerImpl$3.run(ClusterTopologyManagerImpl.java:606)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 2 months
[JBoss JIRA] (ISPN-6272) Extend CacheStream interface to allow for Serializable lambdas
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-6272?page=com.atlassian.jira.plugin.... ]
William Burns updated ISPN-6272:
--------------------------------
Status: Open (was: New)
> Extend CacheStream interface to allow for Serializable lambdas
> --------------------------------------------------------------
>
> Key: ISPN-6272
> URL: https://issues.jboss.org/browse/ISPN-6272
> Project: Infinispan
> Issue Type: Enhancement
> Components: Distributed Execution and Map/Reduce
> Reporter: William Burns
> Assignee: William Burns
> Fix For: 9.0.0.Alpha1
>
>
> Recently it was found that we could add multiple overrides of a method where it was using a FunctionalInterface but also make that interface extend Serializable. This would allow for provided lambdas to be instantly serializable since the JVM will pick the most specific argument.
> Example:
> {code}
> CacheStream filter(Predicate<? super R> predicate);
> {code}
> vs
> {code}
> CacheStream filter(SerializablePredicate<? super R> predicate);
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 2 months
[JBoss JIRA] (ISPN-6272) Extend CacheStream interface to allow for Serializable lambdas
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-6272?page=com.atlassian.jira.plugin.... ]
Work on ISPN-6272 started by William Burns.
-------------------------------------------
> Extend CacheStream interface to allow for Serializable lambdas
> --------------------------------------------------------------
>
> Key: ISPN-6272
> URL: https://issues.jboss.org/browse/ISPN-6272
> Project: Infinispan
> Issue Type: Enhancement
> Components: Distributed Execution and Map/Reduce
> Reporter: William Burns
> Assignee: William Burns
> Fix For: 9.0.0.Alpha1
>
>
> Recently it was found that we could add multiple overrides of a method where it was using a FunctionalInterface but also make that interface extend Serializable. This would allow for provided lambdas to be instantly serializable since the JVM will pick the most specific argument.
> Example:
> {code}
> CacheStream filter(Predicate<? super R> predicate);
> {code}
> vs
> {code}
> CacheStream filter(SerializablePredicate<? super R> predicate);
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 2 months