Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
When a connection relating to CQ is established or dropped, CqStatusListner is invoked to indicate connection/subscription status. This allows application to handle if all the subscription connection is lost for CQs.
Looking at the code path for CqStatusListener there is a chance of NPE getting thrown in CqServiceImpl.invokeCqsConnected when CQ is executed using the Bridge loader interface (old way of client-server
connection)....
When a pool or bridge-loader connection is made or dropped, the code gets all the CQs; checks if the CQ is registered using that connection/pool name and invokes the CqStatusListner...
The code to check if CQ is using the corresponding pool:
Pool cqPool = cQuery.getCQProxy().getPool();
If the CQ is getting executed using Bridge loader, the CqProxy for CQ is not set when its constructed; its set when it gets executed....During this time the call to cQuery.getCQProxy() could throw NPE.