]
William Burns updated ISPN-4637:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
HotRodServer allows registration of ClientListener which specifies
non-existing 'converterFactoryName'
------------------------------------------------------------------------------------------------------
Key: ISPN-4637
URL:
https://issues.jboss.org/browse/ISPN-4637
Project: Infinispan
Issue Type: Bug
Components: Server
Affects Versions: 7.0.0.Beta1
Environment: Mac OS X 10.9.4, Oracle HotSpot 1.7.0_67. Infinispan built from
master.
Reporter: Duncan Doyle
Assignee: Galder ZamarreƱo
Fix For: 7.0.0.Beta2
The HotRodServer allows for the registration of custom ClientListeners that specify a
non-existing 'converterFactoryName'. I.e., the
ClientListenerRegistry.addClientListener method/function does not check whether the given
'converterFactoryName' exists on the server, and if it doesn't exist, it adds
the ClientListener with a Null converter.
The problem is that this gives unexpected results in the client. ISPN in this case seems
to send back events that just contain the 'value' of the entry that was
inserted/modified/removed. But the ClientListener probably expects a custom type:
ClientCacheEntryCustomEvent<MyCustomType>
So, eventually what happens is funky CCEs because the eventData returned in the event (in
this case the value of the entry) is not of the same class as MyCustomType.
In my opinion, HotRodServer should return an error when one tries to register a listener
which specifies a non-registered converterFactory.