During the client.processEvent() handler, we take a copy of the OMMMsg using OMMPool.acquireCopy() and store it for later processing on a separate thread.
When we come to parse this message, we seem to see a problem with parsing OmmTypes.TIME, specifically we end up with the wrong date.
Code sample:
case OMMTypes.TIME: OMMDateTime ommdateTime = (OMMDateTime) value; if (!ommdateTime.isBlank()) { if (fidDef.getMaxOMMLengthAsInt() == 8) { long millisSinceEpoch = ommdateTime.toSeconds(); int microS = ommdateTime.getMicrosecond(); int nanoS = ommdateTime.getNanosecond(); long nanosSinceEpoc = millisSinceEpoch*1000000 + (microS<1000 ? microS*1000 : 0) + (nanoS<1000 ? nanoS : 0); .....
An example field would be QUOTIM_NS
When we look at nanosSinceEpoc as a DataTime, it has a plausible time component, but that the date component appears to stick to the date that the process started. It doesn't change at 00:00:00 as might be expected.
When we DO NOT copy the message using OMMPool.acquireCopy() , but instead parse the original message, we see the date behaving as expected.
This is with Java RFA version 8.1.3.E2