[JBoss JIRA] (ISPN-9907) NullPointerException when async operations share a LocalTransaction
by Dan Berindei (Jira)
[ https://issues.jboss.org/browse/ISPN-9907?page=com.atlassian.jira.plugin.... ]
Dan Berindei updated ISPN-9907:
-------------------------------
Attachment: ISPN-4075_timestamps_improvements_20190128-1450_DistFineGrainedAtomicMapAPITest-infinispan-core.log.gz
> NullPointerException when async operations share a LocalTransaction
> -------------------------------------------------------------------
>
> Key: ISPN-9907
> URL: https://issues.jboss.org/browse/ISPN-9907
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 10.0.0.Alpha3, 9.4.6.Final
> Reporter: Dan Berindei
> Priority: Major
> Labels: testsuite_stability
> Fix For: 10.0.0.Beta1
>
> Attachments: ISPN-4075_timestamps_improvements_20190128-1450_DistFineGrainedAtomicMapAPITest-infinispan-core.log.gz
>
>
> I'm not convinced we should support invoking multiple cache operations bound to the same TM transaction in parallel, but {{FineGrainedAtomicMapProxyImpl.removeAll()}} calls {{AdvancedCache.removeAsync()}} for each key in the map and then blocks to wait for all of them.
> Because the {{lookedUpEntries}} map in {{LocalTransaction}} is not synchronized, this makes {{DistFineGrainedAtomicMapAPITest}} fail randomly with a {{NullPointerException}}:
> {noformat}
> 15:05:36,898 ERROR (testng-Test:[]) [TestSuiteProgress] Test failed: org.infinispan.atomic.DistFineGrainedAtomicMapAPITest.testReplicationPutAndClearCommit
> java.lang.NullPointerException: null
> at org.infinispan.interceptors.impl.CallInterceptor.visitRemoveCommand(CallInterceptor.java:238) ~[classes/:?]
> at org.infinispan.interceptors.impl.CallInterceptor.visitRemoveCommand(CallInterceptor.java:226) ~[classes/:?]
> at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51) ~[classes/:?]
> at org.infinispan.interceptors.impl.CallInterceptor.visitCommand(CallInterceptor.java:160) ~[classes/:?]
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndFinally(BaseAsyncInterceptor.java:152) ~[classes/:?]
> at org.infinispan.interceptors.distribution.TxDistributionInterceptor.handleTxWriteCommand(TxDistributionInterceptor.java:427) ~[classes/:?]
> at org.infinispan.interceptors.distribution.TxDistributionInterceptor.visitRemoveCommand(TxDistributionInterceptor.java:138) ~[classes/:?]
> at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51) ~[classes/:?]
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenAccept(BaseAsyncInterceptor.java:98) ~[classes/:?]
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:671) ~[classes/:?]
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.visitRemoveCommand(EntryWrappingInterceptor.java:356) ~[classes/:?]
> at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51) ~[classes/:?]
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54) ~[classes/:?]
> at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53) ~[classes/:?]
> at org.infinispan.interceptors.DDAsyncInterceptor.visitRemoveCommand(DDAsyncInterceptor.java:64) ~[classes/:?]
> at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51) ~[classes/:?]
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54) ~[classes/:?]
> at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53) ~[classes/:?]
> at org.infinispan.interceptors.DDAsyncInterceptor.visitRemoveCommand(DDAsyncInterceptor.java:64) ~[classes/:?]
> at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51) ~[classes/:?]
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54) ~[classes/:?]
> at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.lambda$new$0(AbstractTxLockingInterceptor.java:34) ~[classes/:?]
> at org.infinispan.interceptors.InvocationSuccessFunction.apply(InvocationSuccessFunction.java:25) ~[classes/:?]
> at org.infinispan.interceptors.SyncInvocationStage.addCallback(SyncInvocationStage.java:42) ~[classes/:?]
> at org.infinispan.interceptors.InvocationStage.thenApply(InvocationStage.java:45) ~[classes/:?]
> at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.acquireLocalLockAndInvokeNext(PessimisticLockingInterceptor.java:283) ~[classes/:?]
> at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.lambda$visitDataWriteCommand$3(PessimisticLockingInterceptor.java:154) ~[classes/:?]
> at org.infinispan.interceptors.InvocationSuccessFunction.apply(InvocationSuccessFunction.java:25) ~[classes/:?]
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:118) ~[classes/:?]
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:81) ~[classes/:?]
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:30) ~[classes/:?]
> at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760) ~[?:1.8.0_171]
> at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736) ~[?:1.8.0_171]
> at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) ~[?:1.8.0_171]
> at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962) ~[?:1.8.0_171]
> at org.infinispan.remoting.transport.AbstractRequest.complete(AbstractRequest.java:67) ~[classes/:?]
> at org.infinispan.remoting.transport.impl.MultiTargetRequest.onResponse(MultiTargetRequest.java:102) ~[classes/:?]
> at org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:52) ~[classes/:?]
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1372) ~[classes/:?]
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1275) ~[classes/:?]
> Suppressed: org.infinispan.util.logging.TraceException
> at org.infinispan.interceptors.impl.SimpleAsyncInvocationStage.get(SimpleAsyncInvocationStage.java:41) ~[classes/:?]
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:138) ~[classes/:?]
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:81) ~[classes/:?]
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:30) ~[classes/:?]
> at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760) ~[?:1.8.0_171]
> at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736) ~[?:1.8.0_171]
> at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) ~[?:1.8.0_171]
> at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962) ~[?:1.8.0_171]
> at org.infinispan.remoting.transport.AbstractRequest.complete(AbstractRequest.java:67) ~[classes/:?]
> at org.infinispan.remoting.transport.impl.MultiTargetRequest.onResponse(MultiTargetRequest.java:102) ~[classes/:?]
> at org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:52) ~[classes/:?]
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1372) ~[classes/:?]
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1275) ~[classes/:?]
> {noformat}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months
[JBoss JIRA] (ISPN-9907) NullPointerException when async operations share a LocalTransaction
by Dan Berindei (Jira)
Dan Berindei created ISPN-9907:
----------------------------------
Summary: NullPointerException when async operations share a LocalTransaction
Key: ISPN-9907
URL: https://issues.jboss.org/browse/ISPN-9907
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 9.4.6.Final, 10.0.0.Alpha3
Reporter: Dan Berindei
Fix For: 10.0.0.Beta1
I'm not convinced we should support invoking multiple cache operations bound to the same TM transaction in parallel, but {{FineGrainedAtomicMapProxyImpl.removeAll()}} calls {{AdvancedCache.removeAsync()}} for each key in the map and then blocks to wait for all of them.
Because the {{lookedUpEntries}} map in {{LocalTransaction}} is not synchronized, this makes {{DistFineGrainedAtomicMapAPITest}} fail randomly with a {{NullPointerException}}:
{noformat}
15:05:36,898 ERROR (testng-Test:[]) [TestSuiteProgress] Test failed: org.infinispan.atomic.DistFineGrainedAtomicMapAPITest.testReplicationPutAndClearCommit
java.lang.NullPointerException: null
at org.infinispan.interceptors.impl.CallInterceptor.visitRemoveCommand(CallInterceptor.java:238) ~[classes/:?]
at org.infinispan.interceptors.impl.CallInterceptor.visitRemoveCommand(CallInterceptor.java:226) ~[classes/:?]
at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51) ~[classes/:?]
at org.infinispan.interceptors.impl.CallInterceptor.visitCommand(CallInterceptor.java:160) ~[classes/:?]
at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndFinally(BaseAsyncInterceptor.java:152) ~[classes/:?]
at org.infinispan.interceptors.distribution.TxDistributionInterceptor.handleTxWriteCommand(TxDistributionInterceptor.java:427) ~[classes/:?]
at org.infinispan.interceptors.distribution.TxDistributionInterceptor.visitRemoveCommand(TxDistributionInterceptor.java:138) ~[classes/:?]
at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51) ~[classes/:?]
at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenAccept(BaseAsyncInterceptor.java:98) ~[classes/:?]
at org.infinispan.interceptors.impl.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:671) ~[classes/:?]
at org.infinispan.interceptors.impl.EntryWrappingInterceptor.visitRemoveCommand(EntryWrappingInterceptor.java:356) ~[classes/:?]
at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51) ~[classes/:?]
at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54) ~[classes/:?]
at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53) ~[classes/:?]
at org.infinispan.interceptors.DDAsyncInterceptor.visitRemoveCommand(DDAsyncInterceptor.java:64) ~[classes/:?]
at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51) ~[classes/:?]
at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54) ~[classes/:?]
at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53) ~[classes/:?]
at org.infinispan.interceptors.DDAsyncInterceptor.visitRemoveCommand(DDAsyncInterceptor.java:64) ~[classes/:?]
at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51) ~[classes/:?]
at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:54) ~[classes/:?]
at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.lambda$new$0(AbstractTxLockingInterceptor.java:34) ~[classes/:?]
at org.infinispan.interceptors.InvocationSuccessFunction.apply(InvocationSuccessFunction.java:25) ~[classes/:?]
at org.infinispan.interceptors.SyncInvocationStage.addCallback(SyncInvocationStage.java:42) ~[classes/:?]
at org.infinispan.interceptors.InvocationStage.thenApply(InvocationStage.java:45) ~[classes/:?]
at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.acquireLocalLockAndInvokeNext(PessimisticLockingInterceptor.java:283) ~[classes/:?]
at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.lambda$visitDataWriteCommand$3(PessimisticLockingInterceptor.java:154) ~[classes/:?]
at org.infinispan.interceptors.InvocationSuccessFunction.apply(InvocationSuccessFunction.java:25) ~[classes/:?]
at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:118) ~[classes/:?]
at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:81) ~[classes/:?]
at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:30) ~[classes/:?]
at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760) ~[?:1.8.0_171]
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736) ~[?:1.8.0_171]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) ~[?:1.8.0_171]
at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962) ~[?:1.8.0_171]
at org.infinispan.remoting.transport.AbstractRequest.complete(AbstractRequest.java:67) ~[classes/:?]
at org.infinispan.remoting.transport.impl.MultiTargetRequest.onResponse(MultiTargetRequest.java:102) ~[classes/:?]
at org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:52) ~[classes/:?]
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1372) ~[classes/:?]
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1275) ~[classes/:?]
Suppressed: org.infinispan.util.logging.TraceException
at org.infinispan.interceptors.impl.SimpleAsyncInvocationStage.get(SimpleAsyncInvocationStage.java:41) ~[classes/:?]
at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:138) ~[classes/:?]
at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:81) ~[classes/:?]
at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:30) ~[classes/:?]
at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760) ~[?:1.8.0_171]
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736) ~[?:1.8.0_171]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) ~[?:1.8.0_171]
at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962) ~[?:1.8.0_171]
at org.infinispan.remoting.transport.AbstractRequest.complete(AbstractRequest.java:67) ~[classes/:?]
at org.infinispan.remoting.transport.impl.MultiTargetRequest.onResponse(MultiTargetRequest.java:102) ~[classes/:?]
at org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:52) ~[classes/:?]
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1372) ~[classes/:?]
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1275) ~[classes/:?]
{noformat}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months
[JBoss JIRA] (ISPN-5312) Rare NPE that occurs in InternalEntryFactoryImpl during a Cache.put replication
by Dan Berindei (Jira)
[ https://issues.jboss.org/browse/ISPN-5312?page=com.atlassian.jira.plugin.... ]
Dan Berindei closed ISPN-5312.
------------------------------
Fix Version/s: 9.0.0.Final
Resolution: Out of Date
Entry wrapping was rewritten with ISPN-7029
> Rare NPE that occurs in InternalEntryFactoryImpl during a Cache.put replication
> -------------------------------------------------------------------------------
>
> Key: ISPN-5312
> URL: https://issues.jboss.org/browse/ISPN-5312
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 5.2.8.Final
> Reporter: Mikhail Dobrinin
> Priority: Major
> Fix For: 9.0.0.Final
>
>
> I ran into this NPE during some tests. It is very uncommon and I haven't been able to reproduce it, but I am concerned about it happening again:
> {noformat}
> Caused by: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from EXPWINCI01-44664, see cause for remote stack trace
> at org.infinispan.remoting.transport.AbstractTransport.checkResponse(AbstractTransport.java:60) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.transport.AbstractTransport.parseResponseAndAddToResponseList(AbstractTransport.java:85) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:541) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:173) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:194) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:251) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:238) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:233) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:212) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:204) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.ReplicationInterceptor.handleCrudMethod(ReplicationInterceptor.java:306) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.ReplicationInterceptor.visitPutKeyValueCommand(ReplicationInterceptor.java:257) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.CacheStoreInterceptor.visitPutKeyValueCommand(CacheStoreInterceptor.java:237) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.CacheLoaderInterceptor.visitPutKeyValueCommand(CacheLoaderInterceptor.java:110) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:301) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:171) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitPutKeyValueCommand(NonTransactionalLockingInterceptor.java:71) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:284) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:222) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:156) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:125) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.IsMarshallableInterceptor.visitPutKeyValueCommand(IsMarshallableInterceptor.java:111) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1186) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.CacheImpl.putInternal(CacheImpl.java:783) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.CacheImpl.put(CacheImpl.java:777) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.CacheImpl.put(CacheImpl.java:771) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.CacheSupport.put(CacheSupport.java:53) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at MYCODE
> ... 47 more
> Caused by: java.lang.NullPointerException
> at org.infinispan.container.InternalEntryFactoryImpl.create(InternalEntryFactoryImpl.java:50) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.CacheStoreInterceptor.getStoredEntry(CacheStoreInterceptor.java:420) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.CacheStoreInterceptor.visitPutKeyValueCommand(CacheStoreInterceptor.java:241) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.CacheLoaderInterceptor.visitPutKeyValueCommand(CacheLoaderInterceptor.java:110) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:301) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:171) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitPutKeyValueCommand(NonTransactionalLockingInterceptor.java:71) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:284) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:222) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:156) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:125) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.IsMarshallableInterceptor.visitPutKeyValueCommand(IsMarshallableInterceptor.java:111) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:82) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:61) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:70) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.InboundInvocationHandlerImpl.handleInternal(InboundInvocationHandlerImpl.java:100) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithWaitForBlocks(InboundInvocationHandlerImpl.java:121) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.InboundInvocationHandlerImpl.handle(InboundInvocationHandlerImpl.java:85) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.executeCommandFromLocalCluster(CommandAwareRpcDispatcher.java:247) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:220) ~[infinispan-core-5.2.8.Final.jar:5.2.8.Final]
> at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:484) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:391) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:249) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:598) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.JChannel.up(JChannel.java:707) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1020) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:504) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.Executing.up(Executing.java:561) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.Locking.up(Locking.java:274) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.RSVP.up(RSVP.java:188) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.FRAG2.up(FRAG2.java:181) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.FlowControl.up(FlowControl.java:400) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.FlowControl.up(FlowControl.java:418) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.pbcast.GMS.up(GMS.java:896) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:245) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.UNICAST2.up(UNICAST2.java:453) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:751) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:609) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.FD_ALL.up(FD_ALL.java:187) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:288) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.MERGE2.up(MERGE2.java:205) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.Discovery.up(Discovery.java:359) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.TP.passMessageUp(TP.java:1263) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1825) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1798) ~[jgroups-3.2.7.Final.jar:3.2.7.Final]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[?:1.7.0_51]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[?:1.7.0_51]
> ... 1 more
> {noformat}
> The cache configuration:
> {code}
> <namedCache name="sessions">
> <clustering mode="replication">
> <stateTransfer fetchInMemoryState="true" timeout="20000"/>
> <sync replTimeout="20000"/>
> </clustering>
> <loaders passivation="false" shared="false" preload="true">
> <loader class="org.infinispan.loaders.file.FileCacheStore" fetchPersistentState="true" ignoreModifications="false" purgeOnStartup="false">
> <async enabled="true"/>
> <properties>
> <property name="location" value="${MYDIR}/data"/>
> <property name="fsyncMode" value="perWrite"/>
> </properties>
> </loader>
> </loaders>
> <eviction maxEntries="50000" strategy="LRU"/>
> <transaction transactionMode="NON_TRANSACTIONAL"/>
> </namedCache>
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months
[JBoss JIRA] (ISPN-4075) State transfer should preserve the creation timestamp of entries
by Dan Berindei (Jira)
[ https://issues.jboss.org/browse/ISPN-4075?page=com.atlassian.jira.plugin.... ]
Dan Berindei reopened ISPN-4075:
--------------------------------
Turns out it is cleaner to wrap the metadata in an {{InternalMetadataImpl}} instead of wrapping the value in an {{InternalCacheEntry}}.
> State transfer should preserve the creation timestamp of entries
> ----------------------------------------------------------------
>
> Key: ISPN-4075
> URL: https://issues.jboss.org/browse/ISPN-4075
> Project: Infinispan
> Issue Type: Feature Request
> Components: Core
> Affects Versions: 6.0.1.Final
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Major
> Fix For: 10.0.0.Alpha3, 10.0.0.Final, 9.4.5.Final
>
>
> State transfer inserts values with the current time as the creation time. Since the entries store the expected lifespan and not the expected expiration time, entries on the receiving node could expire much later than intended.
> The argument probably doesn't apply to the timestamp of the last usage. Since state transfer process could be interpreted as a reader, it should be fine to extend the update the time of the last usage both on the sending node and on the receiving node.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months
[JBoss JIRA] (IPROTO-82) Useless warnings regarding undefined proto schema annotations
by Adrian Nistor (Jira)
[ https://issues.jboss.org/browse/IPROTO-82?page=com.atlassian.jira.plugin.... ]
Adrian Nistor updated IPROTO-82:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
Integrated in master and 4.2.x
> Useless warnings regarding undefined proto schema annotations
> -------------------------------------------------------------
>
> Key: IPROTO-82
> URL: https://issues.jboss.org/browse/IPROTO-82
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Reporter: Adrian Nistor
> Assignee: Adrian Nistor
> Priority: Major
> Fix For: 4.3.0.Alpha1, 4.2.3.Final
>
>
> Protostream emits the warning "Encountered and ignored and unknown annotation..." whenever it parses the documentation text of a definition which contains (pseudo)annotations that were not defined. These warnings do not always make sense for all use cases of a certain schema. For example a user might have some indexing related annotations that are used by the server, but those same anontations will also be seen by the client when parsing the schema and the client does not need to know or care about them. This means the client does not define them in the Protostream configuration to be parsed, so the parser will complain about them later saying they are unknown.
> This issue is benign, as the log message in question is just a WARNing and no exception is thrown, so there is no functional impact on the user app, but it is very noisy and it clogs the log.
> The proposed fix is to not emit any such warnings if there are no custom defined annotations in config. If there is at least one custom annotation, then the old behaviour will continue to exist.
> An new config flag (AnnotationsConfig.logUndefinedAnnotations - default _true_) is introduced to be able to turn this warning off completely if needed.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months
[JBoss JIRA] (IPROTO-82) Useless warnings regarding undefined proto schema annotations
by Adrian Nistor (Jira)
[ https://issues.jboss.org/browse/IPROTO-82?page=com.atlassian.jira.plugin.... ]
Adrian Nistor updated IPROTO-82:
--------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/infinispan/protostream/pull/55
> Useless warnings regarding undefined proto schema annotations
> -------------------------------------------------------------
>
> Key: IPROTO-82
> URL: https://issues.jboss.org/browse/IPROTO-82
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Reporter: Adrian Nistor
> Assignee: Adrian Nistor
> Priority: Major
> Fix For: 4.3.0.Alpha1, 4.2.3.Final
>
>
> Protostream emits the warning "Encountered and ignored and unknown annotation..." whenever it parses the documentation text of a definition which contains (pseudo)annotations that were not defined. These warnings do not always make sense for all use cases of a certain schema. For example a user might have some indexing related annotations that are used by the server, but those same anontations will also be seen by the client when parsing the schema and the client does not need to know or care about them. This means the client does not define them in the Protostream configuration to be parsed, so the parser will complain about them later saying they are unknown.
> This issue is benign, as the log message in question is just a WARNing and no exception is thrown, so there is no functional impact on the user app, but it is very noisy and it clogs the log.
> The proposed fix is to not emit any such warnings if there are no custom defined annotations in config. If there is at least one custom annotation, then the old behaviour will continue to exist.
> An new config flag (AnnotationsConfig.logUndefinedAnnotations - default _true_) is introduced to be able to turn this warning off completely if needed.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 3 months