Hi,
We are using the Async queue mechanism when inserting objects into the regions,
which is defined as follows:
<async-event-queue id="myQueue" persistent="false" parallel="true"
batch-size="10"
disk-store-name="queue-overflow" maximum-queue-memory="256">
<gateway-event-filter>
<class-name>imdg.listeners.myClassFilter</class-name>
</gateway-event-filter>
< >
<class-name>amdocs.imdg.listeners.myClassSubstitutionFilter</class-name>
</gateway-event-substitution-filter>
<async-event-listener>
<class-name>imdg.listeners.myClassListener</class-name>
</async-event-listener>
</async-event-queue>
In gemfire version 8.2,these were the steps for inserting the object to the
queue :
* SubstitutionFilter : we are taking the required objects from the
event object and return them as the result to the filter.
* Filter: beforeEnqueue method is invoked and it's decided if the
object will be passed to the listener. (In our filter classes - if the object
is null we are not sending it to the listener)
* Listener: gets the de-serialized value, processes it puts it in the
relevant regions.
Seems like in geode we are not passing through beforeEnqueue method in the
Fillter step, and the null objects are not been filtered.
This means that when there is no object to pass through the queue, still null
will be passed, and in the listener code, when asking for the de-serialized
value,
we are getting also the null object, which results in a Null Pointer Exception.
Was anything changed recently in the Async queue mechanism?
Thanks,
Gal
This message and the information contained herein is proprietary and
confidential and subject to the Amdocs policy statement,
you may review at http://www.amdocs.com/email_disclaimer.asp