[JBoss JIRA] (ISPN-7764) Query 'not().having().contains()' gives unexpected result
by Kevin Tabary (JIRA)
Kevin Tabary created ISPN-7764:
----------------------------------
Summary: Query 'not().having().contains()' gives unexpected result
Key: ISPN-7764
URL: https://issues.jboss.org/browse/ISPN-7764
Project: Infinispan
Issue Type: Bug
Components: Remote Querying
Affects Versions: 9.0.0.Final
Reporter: Kevin Tabary
Given following domain object
{code}
@ProtoMessage
@ProtoDoc("@Indexed")
@EqualsAndHashCode(of = {"applicationCode", "applicationUserId"})
public class ApplicationUser {
private String applicationCode;
private String applicationUserId;
private Set<String> optoutCategories;
private Set<Device> devices;
//setter ommited
@ProtoField(number = 1)
public String getApplicationCode() {
return applicationCode;
}
@ProtoField(number = 2)
public String getApplicationUserId() {
return applicationUserId;
}
@ProtoField(number = 3, collectionImplementation = HashSet.class)
public Set<String> getOptoutCategories() {
return optoutCategories;
}
@ProtoField(number = 4, collectionImplementation = HashSet.class)
public Set<Device> getDevices() {
return devices;
}
{code}
and following request embedded in a Spring repository:
{code}
public List<ApplicationUser> test() {
QueryFactory qf = getQueryFactory();
return qf.from(ApplicationUser.class)
.not().having("optoutCategories").contains("CAT2")
.and().having("applicationCode").eq("My_App_Yaya")
.toBuilder()
.build()
.list();
}
{code}
and suppose the following json representation:
{code}
[
{
"applicationCode": "My_App_Yaya",
"applicationUserId": "123",
"optoutCategories": [
"CAT3",
"CAT2",
"CAT1"
],
"uniqueKey": "My_App_Yaya_123"
}
]
{code}
the query returns the ApplicationUser with json representation above, but should not as it precisely contains the optoutCategories we want to exclude.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
6 years, 12 months
[JBoss JIRA] (ISPN-7470) Distributed executor does not fail over unless future.get() is called
by Dan Berindei (JIRA)
[ https://issues.jboss.org/browse/ISPN-7470?page=com.atlassian.jira.plugin.... ]
Dan Berindei updated ISPN-7470:
-------------------------------
Fix Version/s: 9.1.0.Final
> Distributed executor does not fail over unless future.get() is called
> ---------------------------------------------------------------------
>
> Key: ISPN-7470
> URL: https://issues.jboss.org/browse/ISPN-7470
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.6.Final, 9.0.0.CR1
> Reporter: Dan Berindei
> Assignee: William Burns
> Fix For: 9.1.0.Final
>
>
> After ISPN-6392, {{DistributedExecutorService.submit(...)}} nominally returns a {{CompletableFuture}}. However, it doesn't behave like a regular {{CompletableFuture}}, because it doesn't run the failure policy until the user calls {{future.get()}}.
> {{future.isComplete()}} will return {{true}} before running the failure policy, and {{future.whenComplete(callback)}} will also execute the callback before running the failure policy.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
6 years, 12 months
[JBoss JIRA] (ISPN-7470) Distributed executor does not fail over unless future.get() is called
by Dan Berindei (JIRA)
[ https://issues.jboss.org/browse/ISPN-7470?page=com.atlassian.jira.plugin.... ]
Dan Berindei updated ISPN-7470:
-------------------------------
Status: Open (was: New)
> Distributed executor does not fail over unless future.get() is called
> ---------------------------------------------------------------------
>
> Key: ISPN-7470
> URL: https://issues.jboss.org/browse/ISPN-7470
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.6.Final, 9.0.0.CR1
> Reporter: Dan Berindei
> Assignee: William Burns
> Fix For: 9.1.0.Final
>
>
> After ISPN-6392, {{DistributedExecutorService.submit(...)}} nominally returns a {{CompletableFuture}}. However, it doesn't behave like a regular {{CompletableFuture}}, because it doesn't run the failure policy until the user calls {{future.get()}}.
> {{future.isComplete()}} will return {{true}} before running the failure policy, and {{future.whenComplete(callback)}} will also execute the callback before running the failure policy.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
6 years, 12 months
[JBoss JIRA] (ISPN-7672) NonTotalOrderTxPerCacheInboundInvocationHandler throws warning when adding cache entry using Spring Session
by Dan Berindei (JIRA)
[ https://issues.jboss.org/browse/ISPN-7672?page=com.atlassian.jira.plugin.... ]
Dan Berindei commented on ISPN-7672:
------------------------------------
[~galder.zamarreno] -1 to store the version inside the value, I have a feeling it's going to require extra allocations. And I don't know how it would interact with [~gustavonalle]'s transcoding work... For ISPN-4972, I think the HotRod server should use the functional API to execute the replacement based solely on the version.
> NonTotalOrderTxPerCacheInboundInvocationHandler throws warning when adding cache entry using Spring Session
> -----------------------------------------------------------------------------------------------------------
>
> Key: ISPN-7672
> URL: https://issues.jboss.org/browse/ISPN-7672
> Project: Infinispan
> Issue Type: Bug
> Components: Cloud Integrations, Spring Integration
> Affects Versions: 9.0.0.CR4
> Reporter: Sebastian Łaskawiec
> Assignee: Galder Zamarreño
> Priority: Blocker
> Fix For: 9.1.0.Final
>
>
> When I'm trying to add an entry using Spring Session integration with a [transactional cache|https://github.com/slaskawi/presentations/blob/master/2017_spring_s...], the server throws a warning:
> {code}
> [transactions-repository-1-2cbrv] 06:53:40,773 WARN [org.infinispan.remoting.inboundhandler.NonTotalOrderTxPerCacheInboundInvocationHandler] (remote-thread--p2-t18) ISPN000071: Caught exception when handling command DistributedExecuteCommand [cache=Cache 'sessions'@transactions-repository-1-2cbrv, keys=[], callable=ClusterEventCallable{identifier=b345211e-fbd7-4305-b3a6-6979301e0360, events=[ClusterEvent {type=CACHE_ENTRY_CREATED, cache=Cache 'sessions'@transactions-repository-1-2cbrv, key=[B@8c75820, value=[B@76856353, oldValue=null, transaction=RecoveryAwareGlobalTransaction{xid=< 131077, 29, 36, 0000000000-1-1-84170374-96-629488-44-62370001349, 0000000000-1-1-84170374-96-629488-44-62370001400000000 >, internalId=562954248388609} GlobalTx:transactions-repository-1-cwk6f:1, retryCommand=false, origin=transactions-repository-1-cwk6f}]}]: org.infinispan.commons.CacheListenerException: ISPN000280: Caught exception [java.lang.ClassCastException] while invoking method [public void org.infinispan.server.hotrod.ClientListenerRegistry$BaseClientEventSender.onCacheEvent(org.infinispan.notifications.cachelistener.event.CacheEntryEvent)] on listener instance: org.infinispan.server.hotrod.ClientListenerRegistry$StatelessClientEventSender@7b97a57
> [transactions-repository-1-2cbrv] at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl$1.run(AbstractListenerImpl.java:401)
> [transactions-repository-1-2cbrv] at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:20)
> [transactions-repository-1-2cbrv] at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.invoke(AbstractListenerImpl.java:419)
> [transactions-repository-1-2cbrv] at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.doRealInvocation(CacheNotifierImpl.java:1512)
> [transactions-repository-1-2cbrv] at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.doRealInvocation(CacheNotifierImpl.java:1508)
> [transactions-repository-1-2cbrv] at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invokeNoChecks(CacheNotifierImpl.java:1503)
> [transactions-repository-1-2cbrv] at org.infinispan.notifications.cachelistener.CacheNotifierImpl.notifyClusterListeners(CacheNotifierImpl.java:711)
> [transactions-repository-1-2cbrv] at org.infinispan.notifications.cachelistener.cluster.ClusterEventCallable.call(ClusterEventCallable.java:49)
> [transactions-repository-1-2cbrv] at org.infinispan.notifications.cachelistener.cluster.ClusterEventCallable.call(ClusterEventCallable.java:25)
> [transactions-repository-1-2cbrv] at org.infinispan.commands.read.DistributedExecuteCommand.invokeAsync(DistributedExecuteCommand.java:99)
> [transactions-repository-1-2cbrv] at org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokeCommand(BasePerCacheInboundInvocationHandler.java:90)
> [transactions-repository-1-2cbrv] at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.invoke(BaseBlockingRunnable.java:90)
> [transactions-repository-1-2cbrv] at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.runAsync(BaseBlockingRunnable.java:68)
> [transactions-repository-1-2cbrv] at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:40)
> [transactions-repository-1-2cbrv] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [transactions-repository-1-2cbrv] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [transactions-repository-1-2cbrv] at java.lang.Thread.run(Thread.java:745)
> [transactions-repository-1-2cbrv] Caused by: java.lang.ClassCastException: org.infinispan.container.versioning.SimpleClusteredVersion cannot be cast to org.infinispan.container.versioning.NumericVersion
> [transactions-repository-1-2cbrv] at org.infinispan.server.hotrod.ClientListenerRegistry$BaseClientEventSender.onCacheEvent(ClientListenerRegistry.java:363)
> [transactions-repository-1-2cbrv] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [transactions-repository-1-2cbrv] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> [transactions-repository-1-2cbrv] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> [transactions-repository-1-2cbrv] at java.lang.reflect.Method.invoke(Method.java:498)
> [transactions-repository-1-2cbrv] at org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl$1.run(AbstractListenerImpl.java:396)
> [transactions-repository-1-2cbrv] ... 16 more
> [transactions-repository-1-2cbrv]
> {code}
> This didn't happen in {{CR2}} release, so there must be something that changed since then. I also noticed that this sometimes leads to exceptions in the Hot Rod client.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
6 years, 12 months