Barry, 

Can you open a jira issue to file this problem, maybe with Gal's details 
mentioned below ? 

Dor

-----Original Message-----
From: Gal Palmery 
Sent: יום ד 01 יוני 2016 09:17
To: [email protected]
Cc: geode ([email protected])
Subject: RE: Async queue mechanism

Thanks a lot Barry!
Can you pls share the quick explanation about the fix?

From: Barry Oglesby [mailto:[email protected]]
Sent: Wednesday, June 01, 2016 03:44
To: [email protected]
Cc: geode ([email protected])
Subject: Re: Async queue mechanism

I see the issue. It looks like a merge issue. I have a fix that I'll check in 
in the next day or so.

Thanks,
Barry Oglesby


On Tue, May 31, 2016 at 12:52 PM, Barry Oglesby 
<[email protected]<mailto:[email protected]>> wrote:
I see this same behavior. I'll look into it a bit more and let you know what I 
find.

Thanks,
Barry Oglesby


On Sun, May 29, 2016 at 5:38 AM, Gal Palmery 
<[email protected]<mailto:[email protected]>> wrote:
+Adding the dev group

Thanks,
Gal

From: Gal Palmery
Sent: Sunday, May 29, 2016 15:30
To: [email protected]<mailto:[email protected]>
Subject: Async queue mechanism

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>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