question

Upvotes
Accepted
1 1 1 2

NullPointerException emaj 3.6.1.2 processing directory domain message

Hi Dev Team,

Recently we have encountered a NullPointerException processing directory domain message.
This happened after one of the services on TREP 3.5 was renamed so we suspect TREP sent a message that included a Delete for that old service name that was being renamed which caused the app to crash or at least that is our suspicion. Is this some kind of bug?

Thanks
Piotr


EMA Client v3.6.1.2

lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: Exception in thread "pool-5-thread-1" java.lang.NullPointerException
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.ema.access.DirectoryCallbackClient.processDirectoryPayload(DirectoryCallbackClient.java:405)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.ema.access.DirectoryCallbackClient.rdmDirectoryMsgCallback(DirectoryCallbackClient.java:217)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.eta.valueadd.reactor.Reactor.sendDirectoryMsgCallback(Reactor.java:2344)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.eta.valueadd.reactor.Reactor.sendAndHandleDirectoryMsgCallback(Reactor.java:2359)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.eta.valueadd.reactor.WlDirectoryHandler.callbackUser(WlDirectoryHandler.java:1416)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.eta.valueadd.reactor.WlDirectoryHandler.deleteAllServices(WlDirectoryHandler.java:738)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: Exception in thread "pool-5-thread-1" java.lang.NullPointerException
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.ema.access.DirectoryCallbackClient.processDirectoryPayload(DirectoryCallbackClient.java:405)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.ema.access.DirectoryCallbackClient.rdmDirectoryMsgCallback(DirectoryCallbackClient.java:217)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.eta.valueadd.reactor.Reactor.sendDirectoryMsgCallback(Reactor.java:2344)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.eta.valueadd.reactor.Reactor.sendAndHandleDirectoryMsgCallback(Reactor.java:2359)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.eta.valueadd.reactor.WlDirectoryHandler.callbackUser(WlDirectoryHandler.java:1416)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.eta.valueadd.reactor.WlDirectoryHandler.deleteAllServices(WlDirectoryHandler.java:738)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.eta.valueadd.reactor.WlDirectoryHandler.deleteAllServices(WlDirectoryHandler.java:1351)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.eta.valueadd.reactor.Watchlist.channelDown(Watchlist.java:446)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.eta.valueadd.reactor.Reactor.sendAndHandleChannelEventCallback(Reactor.java:1913)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.eta.valueadd.reactor.Reactor.performChannelRead(Reactor.java:3340)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.eta.valueadd.reactor.Reactor.dispatchChannel(Reactor.java:2529)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.eta.valueadd.reactor.ReactorChannel.dispatch(ReactorChannel.java:601)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.ema.access.OmmBaseImpl.rsslReactorDispatchLoop(OmmBaseImpl.java:1510)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at com.refinitiv.ema.access.OmmBaseImpl.run(OmmBaseImpl.java:1652)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2617]: at java.base/java.lang.Thread.run(Thread.java:834)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.eta.valueadd.reactor.WlDirectoryHandler.deleteAllServices(WlDirectoryHandler.java:1351)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.eta.valueadd.reactor.Watchlist.channelDown(Watchlist.java:446)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.eta.valueadd.reactor.Reactor.sendAndHandleChannelEventCallback(Reactor.java:1913)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.eta.valueadd.reactor.Reactor.performChannelRead(Reactor.java:3340)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.eta.valueadd.reactor.Reactor.dispatchChannel(Reactor.java:2529)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.eta.valueadd.reactor.ReactorChannel.dispatch(ReactorChannel.java:601)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.ema.access.OmmBaseImpl.rsslReactorDispatchLoop(OmmBaseImpl.java:1510)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at com.refinitiv.ema.access.OmmBaseImpl.run(OmmBaseImpl.java:1652)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
lis 27 01:15:21 rdb-srv-appl901.cityindex.co.uk java[2628]: at java.base/java.lang.Thread.run(Thread.java:834)


ema-apijavaexceptionrdm
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

Upvotes
Accepted
49.7k 124 44 62

@piotr.g

I could replicate the same stack by changing a service ID of an existing service name.

For example, a source directory refresh message contains two services.

  • DIRECT_FEED (service Id : 1)
  • ELEKTRON_DD (service Id: 2)

Then, I sent a source directory update message to change the service ID of DIRECT_FEED

  • DIRECT_FEED (service Id: 3)

Next, I cut the connection. EMA showed the following exception.

1639642257661.pngTo confirm the problem, please enable the RSSLtracing by using the XmlTraceToStdout configuration. For example:

        <Consumer>
            <Name value="Consumer_1"/>
            <Channel value="Channel_1"/>
            <Dictionary value="Dictionary_2"/>
            <XmlTraceToStdout value="1"/>
        </Consumer>

Otherwise, if you are an RDC subscriber, you can contact the RDC support team directly via Contact Premium Support at https://developers.refinitiv.com/en/api-catalog/refinitiv-real-time-opnsrc/rt-sdk-java to investigate this issue.


1639642257661.png (63.0 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.