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

Reply via email to