You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It is not possible to register any client listener to Infinispan Server in native mode via a HotRod Client.
Tried with both a C# and Java HotRod Clients and both end up with same error server side.
not working with infinispan-quarkus
does work with infinispan JVM mode
Error Message
Warning text/plain: ISPN000133: Attempted to register listener of class class org.infinispan.server.hotrod.ClientListenerRegistry$StatelessClientEventSender, but no valid, public methods annotated with method-level event annotations found! Ignoring listener.
The OnCacheEvent() method having the CacheEntry annotations is implemented in the BaseClientEventSender abstract class. Those method annotations are not discovered in the class in native mode (they are in JVM mode though).
As per the error message, it is clear it sees the class Listener annotation on StatelessClientEventSender() private class, but then nothing for the method level annotations.
The code scanning for the annotations is AbstractListenerImpl via the method validateAndAddListenerInvocations()
Investigation
I moved the OnCacheEvent() method and its annotations from the BaseClientEventSender class to the concrete classes being: StatelessClientEventSender and StatefulClientEventSender and recompiled Infinispan then recompiled infinispan-quarkus in native mode and it was working fine then.
So I guess either have the reflection would need to be fixed in native mode or Infinispan be modified as per the above suggestion, but I think the better would be to have the reflection fixed in infinispan-quarkus so that if other annotated classes with similar definition are implemented in Infinispan then it would work right away in native mode.
Thanks :)
The text was updated successfully, but these errors were encountered:
It is not possible to register any client listener to Infinispan Server in native mode via a HotRod Client.
Tried with both a C# and Java HotRod Clients and both end up with same error server side.
Error Message
Warning text/plain: ISPN000133: Attempted to register listener of class class org.infinispan.server.hotrod.ClientListenerRegistry$StatelessClientEventSender, but no valid, public methods annotated with method-level event annotations found! Ignoring listener.
Issue
The problem resides in ClientListenerRegistry .
The OnCacheEvent() method having the CacheEntry annotations is implemented in the BaseClientEventSender abstract class. Those method annotations are not discovered in the class in native mode (they are in JVM mode though).
As per the error message, it is clear it sees the class Listener annotation on StatelessClientEventSender() private class, but then nothing for the method level annotations.
The code scanning for the annotations is AbstractListenerImpl via the method validateAndAddListenerInvocations()
Investigation
I moved the OnCacheEvent() method and its annotations from the BaseClientEventSender class to the concrete classes being: StatelessClientEventSender and StatefulClientEventSender and recompiled Infinispan then recompiled infinispan-quarkus in native mode and it was working fine then.
So I guess either have the reflection would need to be fixed in native mode or Infinispan be modified as per the above suggestion, but I think the better would be to have the reflection fixed in infinispan-quarkus so that if other annotated classes with similar definition are implemented in Infinispan then it would work right away in native mode.
Thanks :)
The text was updated successfully, but these errors were encountered: