You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Gal Palmery <Ga...@amdocs.com> on 2016/05/29 12:38:26 UTC

RE: Async queue mechanism

+Adding the dev group

Thanks,
Gal

From: Gal Palmery
Sent: Sunday, May 29, 2016 15:30
To: user@geode.incubator.apache.org
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

Re: Async queue mechanism

Posted by Barry Oglesby <bo...@pivotal.io>.
Can you check your locator log file?

You should see a message like this:

[info 2019/11/25 09:39:35.432 PST <RMI TCP Connection(5)-127.0.0.1>
tid=0x55] Executing command: create async-event-queue --id=sampleq7
--listener=test.gemfire.GemFireListener

And then the exception with stack like:

[error 2019/11/25 09:56:19.507 PST <RMI TCP Connection(4)-127.0.0.1>
tid=0x43] Could not execute "create async-event-queue --id=sampleq7
--listener=test.gemfire.GemFireListener".
java.lang.Exception: No results received.
...

Thanks,
Barry Oglesby



On Mon, Nov 25, 2019 at 9:23 AM anjana_nair <si...@hotmail.com> wrote:

> Hi,
>
> I am trying to create a an asyncEventqueue thru gfsh and it gives me the
> error below :
>
> gfsh>create async-event-queue --id=sampleq7
> --listener=test.gemfire.GemFireListener
> Could not process command due to error. Error while processing command
> <create async-event-queue --id=sampleq7
> --listener=test.gemfire.GemFireListener> Reason : No results received.
>
>
> Sever throws no error on startup.
>
> what could be the reason ? The error message does not say anything.
>
>
>
>
>
> --
> Sent from:
> http://apache-geode-incubating-developers-forum.70738.x6.nabble.com/
>

RE: Async queue mechanism

Posted by anjana_nair <si...@hotmail.com>.
Hi,

I am trying to create a an asyncEventqueue thru gfsh and it gives me the
error below :

gfsh>create async-event-queue --id=sampleq7 
--listener=test.gemfire.GemFireListener
Could not process command due to error. Error while processing command
<create async-event-queue --id=sampleq7 
--listener=test.gemfire.GemFireListener> Reason : No results received.


Sever throws no error on startup.

what could be the reason ? The error message does not say anything.





--
Sent from: http://apache-geode-incubating-developers-forum.70738.x6.nabble.com/

RE: Async queue mechanism

Posted by Dor Ben Dov <do...@amdocs.com>.
Great thanks Barry.
Dor

From: Barry Oglesby [mailto:boglesby@pivotal.io]
Sent: יום ד 01 יוני 2016 19:43
To: user@geode.incubator.apache.org
Cc: dev@geode.incubator.apache.org
Subject: Re: Async queue mechanism

Sure. I created https://issues.apache.org/jira/browse/GEODE-1471 last night and just added Gal's details this morning.

Thanks,
Barry Oglesby


On Wed, Jun 1, 2016 at 3:44 AM, Dor Ben Dov <do...@amdocs.com>> wrote:
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: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
Cc: geode (dev@geode.incubator.apache.org<ma...@geode.incubator.apache.org>)
Subject: RE: Async queue mechanism

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

From: Barry Oglesby [mailto:boglesby@pivotal.io<ma...@pivotal.io>]
Sent: Wednesday, June 01, 2016 03:44
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
Cc: geode (dev@geode.incubator.apache.org<ma...@geode.incubator.apache.org>)
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 <bo...@pivotal.io>>> 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 <Ga...@amdocs.com>>> wrote:
+Adding the dev group

Thanks,
Gal

From: Gal Palmery
Sent: Sunday, May 29, 2016 15:30
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>>
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



RE: Async queue mechanism

Posted by Dor Ben Dov <do...@amdocs.com>.
Great thanks Barry.
Dor

From: Barry Oglesby [mailto:boglesby@pivotal.io]
Sent: יום ד 01 יוני 2016 19:43
To: user@geode.incubator.apache.org
Cc: dev@geode.incubator.apache.org
Subject: Re: Async queue mechanism

Sure. I created https://issues.apache.org/jira/browse/GEODE-1471 last night and just added Gal's details this morning.

Thanks,
Barry Oglesby


On Wed, Jun 1, 2016 at 3:44 AM, Dor Ben Dov <do...@amdocs.com>> wrote:
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: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
Cc: geode (dev@geode.incubator.apache.org<ma...@geode.incubator.apache.org>)
Subject: RE: Async queue mechanism

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

From: Barry Oglesby [mailto:boglesby@pivotal.io<ma...@pivotal.io>]
Sent: Wednesday, June 01, 2016 03:44
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
Cc: geode (dev@geode.incubator.apache.org<ma...@geode.incubator.apache.org>)
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 <bo...@pivotal.io>>> 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 <Ga...@amdocs.com>>> wrote:
+Adding the dev group

Thanks,
Gal

From: Gal Palmery
Sent: Sunday, May 29, 2016 15:30
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>>
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



Re: Async queue mechanism

Posted by Barry Oglesby <bo...@pivotal.io>.
Sure. I created https://issues.apache.org/jira/browse/GEODE-1471 last night
and just added Gal's details this morning.

Thanks,
Barry Oglesby


On Wed, Jun 1, 2016 at 3:44 AM, Dor Ben Dov <do...@amdocs.com> wrote:

> 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: user@geode.incubator.apache.org
> Cc: geode (dev@geode.incubator.apache.org)
> Subject: RE: Async queue mechanism
>
> Thanks a lot Barry!
> Can you pls share the quick explanation about the fix?
>
> From: Barry Oglesby [mailto:boglesby@pivotal.io]
> Sent: Wednesday, June 01, 2016 03:44
> To: user@geode.incubator.apache.org
> Cc: geode (dev@geode.incubator.apache.org)
> 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 <boglesby@pivotal.io
> <ma...@pivotal.io>> 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 <Gal.Palmery@amdocs.com
> <ma...@amdocs.com>> wrote:
> +Adding the dev group
>
> Thanks,
> Gal
>
> From: Gal Palmery
> Sent: Sunday, May 29, 2016 15:30
> To: user@geode.incubator.apache.org<mailto:user@geode.incubator.apache.org
> >
> 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
>
>
>

Re: Async queue mechanism

Posted by Barry Oglesby <bo...@pivotal.io>.
Sure. I created https://issues.apache.org/jira/browse/GEODE-1471 last night
and just added Gal's details this morning.

Thanks,
Barry Oglesby


On Wed, Jun 1, 2016 at 3:44 AM, Dor Ben Dov <do...@amdocs.com> wrote:

> 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: user@geode.incubator.apache.org
> Cc: geode (dev@geode.incubator.apache.org)
> Subject: RE: Async queue mechanism
>
> Thanks a lot Barry!
> Can you pls share the quick explanation about the fix?
>
> From: Barry Oglesby [mailto:boglesby@pivotal.io]
> Sent: Wednesday, June 01, 2016 03:44
> To: user@geode.incubator.apache.org
> Cc: geode (dev@geode.incubator.apache.org)
> 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 <boglesby@pivotal.io
> <ma...@pivotal.io>> 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 <Gal.Palmery@amdocs.com
> <ma...@amdocs.com>> wrote:
> +Adding the dev group
>
> Thanks,
> Gal
>
> From: Gal Palmery
> Sent: Sunday, May 29, 2016 15:30
> To: user@geode.incubator.apache.org<mailto:user@geode.incubator.apache.org
> >
> 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
>
>
>

RE: Async queue mechanism

Posted by Dor Ben Dov <do...@amdocs.com>.
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: user@geode.incubator.apache.org
Cc: geode (dev@geode.incubator.apache.org)
Subject: RE: Async queue mechanism

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

From: Barry Oglesby [mailto:boglesby@pivotal.io]
Sent: Wednesday, June 01, 2016 03:44
To: user@geode.incubator.apache.org
Cc: geode (dev@geode.incubator.apache.org)
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 <bo...@pivotal.io>> 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 <Ga...@amdocs.com>> wrote:
+Adding the dev group

Thanks,
Gal

From: Gal Palmery
Sent: Sunday, May 29, 2016 15:30
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
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



RE: Async queue mechanism

Posted by Gal Palmery <Ga...@amdocs.com>.
Thanks Barry .

From: Barry Oglesby [mailto:boglesby@pivotal.io]
Sent: Wednesday, June 01, 2016 19:56
To: user@geode.incubator.apache.org
Cc: geode (dev@geode.incubator.apache.org)
Subject: Re: Async queue mechanism

Sure. Its a pretty simple fix. When the xml is parsed, the AEQ's attributes are set into an intermediate object called an AsyncEventQueueCreation. The AsyncEventQueueImpl is instantiated based on this AsyncEventQueueCreation. During this processing, any configured GatewayEventFilters were left behind and not set on the AsyncEventQueueImpl. The fix was to not leave any configured GatewayEventFilters behind.

Thanks,
Barry Oglesby


On Tue, May 31, 2016 at 11:16 PM, Gal Palmery <Ga...@amdocs.com>> wrote:
Thanks a lot Barry!
Can you pls share the quick explanation about the fix?

From: Barry Oglesby [mailto:boglesby@pivotal.io<ma...@pivotal.io>]
Sent: Wednesday, June 01, 2016 03:44
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
Cc: geode (dev@geode.incubator.apache.org<ma...@geode.incubator.apache.org>)
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 <bo...@pivotal.io>> 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 <Ga...@amdocs.com>> wrote:
+Adding the dev group

Thanks,
Gal

From: Gal Palmery
Sent: Sunday, May 29, 2016 15:30
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
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




RE: Async queue mechanism

Posted by Gal Palmery <Ga...@amdocs.com>.
Thanks Barry .

From: Barry Oglesby [mailto:boglesby@pivotal.io]
Sent: Wednesday, June 01, 2016 19:56
To: user@geode.incubator.apache.org
Cc: geode (dev@geode.incubator.apache.org)
Subject: Re: Async queue mechanism

Sure. Its a pretty simple fix. When the xml is parsed, the AEQ's attributes are set into an intermediate object called an AsyncEventQueueCreation. The AsyncEventQueueImpl is instantiated based on this AsyncEventQueueCreation. During this processing, any configured GatewayEventFilters were left behind and not set on the AsyncEventQueueImpl. The fix was to not leave any configured GatewayEventFilters behind.

Thanks,
Barry Oglesby


On Tue, May 31, 2016 at 11:16 PM, Gal Palmery <Ga...@amdocs.com>> wrote:
Thanks a lot Barry!
Can you pls share the quick explanation about the fix?

From: Barry Oglesby [mailto:boglesby@pivotal.io<ma...@pivotal.io>]
Sent: Wednesday, June 01, 2016 03:44
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
Cc: geode (dev@geode.incubator.apache.org<ma...@geode.incubator.apache.org>)
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 <bo...@pivotal.io>> 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 <Ga...@amdocs.com>> wrote:
+Adding the dev group

Thanks,
Gal

From: Gal Palmery
Sent: Sunday, May 29, 2016 15:30
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
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




Re: Async queue mechanism

Posted by Barry Oglesby <bo...@pivotal.io>.
Sure. Its a pretty simple fix. When the xml is parsed, the AEQ's attributes
are set into an intermediate object called an AsyncEventQueueCreation. The
AsyncEventQueueImpl is instantiated based on this AsyncEventQueueCreation.
During this processing, any configured GatewayEventFilters were left behind
and not set on the AsyncEventQueueImpl. The fix was to not leave any
configured GatewayEventFilters behind.

Thanks,
Barry Oglesby


On Tue, May 31, 2016 at 11:16 PM, Gal Palmery <Ga...@amdocs.com>
wrote:

> Thanks a lot Barry!
>
> Can you pls share the quick explanation about the fix?
>
>
>
> *From:* Barry Oglesby [mailto:boglesby@pivotal.io]
> *Sent:* Wednesday, June 01, 2016 03:44
> *To:* user@geode.incubator.apache.org
> *Cc:* geode (dev@geode.incubator.apache.org)
> *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 <bo...@pivotal.io>
> 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 <Ga...@amdocs.com>
> wrote:
>
> +Adding the dev group
>
>
>
> Thanks,
>
> Gal
>
>
>
> *From:* Gal Palmery
> *Sent:* Sunday, May 29, 2016 15:30
> *To:* user@geode.incubator.apache.org
> *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
>
>
>
>
>

RE: Async queue mechanism

Posted by Dor Ben Dov <do...@amdocs.com>.
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: user@geode.incubator.apache.org
Cc: geode (dev@geode.incubator.apache.org)
Subject: RE: Async queue mechanism

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

From: Barry Oglesby [mailto:boglesby@pivotal.io]
Sent: Wednesday, June 01, 2016 03:44
To: user@geode.incubator.apache.org
Cc: geode (dev@geode.incubator.apache.org)
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 <bo...@pivotal.io>> 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 <Ga...@amdocs.com>> wrote:
+Adding the dev group

Thanks,
Gal

From: Gal Palmery
Sent: Sunday, May 29, 2016 15:30
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
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



Re: Async queue mechanism

Posted by Barry Oglesby <bo...@pivotal.io>.
Sure. Its a pretty simple fix. When the xml is parsed, the AEQ's attributes
are set into an intermediate object called an AsyncEventQueueCreation. The
AsyncEventQueueImpl is instantiated based on this AsyncEventQueueCreation.
During this processing, any configured GatewayEventFilters were left behind
and not set on the AsyncEventQueueImpl. The fix was to not leave any
configured GatewayEventFilters behind.

Thanks,
Barry Oglesby


On Tue, May 31, 2016 at 11:16 PM, Gal Palmery <Ga...@amdocs.com>
wrote:

> Thanks a lot Barry!
>
> Can you pls share the quick explanation about the fix?
>
>
>
> *From:* Barry Oglesby [mailto:boglesby@pivotal.io]
> *Sent:* Wednesday, June 01, 2016 03:44
> *To:* user@geode.incubator.apache.org
> *Cc:* geode (dev@geode.incubator.apache.org)
> *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 <bo...@pivotal.io>
> 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 <Ga...@amdocs.com>
> wrote:
>
> +Adding the dev group
>
>
>
> Thanks,
>
> Gal
>
>
>
> *From:* Gal Palmery
> *Sent:* Sunday, May 29, 2016 15:30
> *To:* user@geode.incubator.apache.org
> *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
>
>
>
>
>

RE: Async queue mechanism

Posted by Gal Palmery <Ga...@amdocs.com>.
Thanks a lot Barry!
Can you pls share the quick explanation about the fix?

From: Barry Oglesby [mailto:boglesby@pivotal.io]
Sent: Wednesday, June 01, 2016 03:44
To: user@geode.incubator.apache.org
Cc: geode (dev@geode.incubator.apache.org)
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 <bo...@pivotal.io>> 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 <Ga...@amdocs.com>> wrote:
+Adding the dev group

Thanks,
Gal

From: Gal Palmery
Sent: Sunday, May 29, 2016 15:30
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
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



RE: Async queue mechanism

Posted by Gal Palmery <Ga...@amdocs.com>.
Thanks a lot Barry!
Can you pls share the quick explanation about the fix?

From: Barry Oglesby [mailto:boglesby@pivotal.io]
Sent: Wednesday, June 01, 2016 03:44
To: user@geode.incubator.apache.org
Cc: geode (dev@geode.incubator.apache.org)
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 <bo...@pivotal.io>> 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 <Ga...@amdocs.com>> wrote:
+Adding the dev group

Thanks,
Gal

From: Gal Palmery
Sent: Sunday, May 29, 2016 15:30
To: user@geode.incubator.apache.org<ma...@geode.incubator.apache.org>
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



Re: Async queue mechanism

Posted by Barry Oglesby <bo...@pivotal.io>.
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 <bo...@pivotal.io> 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 <Ga...@amdocs.com>
> wrote:
>
>> +Adding the dev group
>>
>>
>>
>> Thanks,
>>
>> Gal
>>
>>
>>
>> *From:* Gal Palmery
>> *Sent:* Sunday, May 29, 2016 15:30
>> *To:* user@geode.incubator.apache.org
>> *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
>>
>
>

Re: Async queue mechanism

Posted by Barry Oglesby <bo...@pivotal.io>.
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 <bo...@pivotal.io> 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 <Ga...@amdocs.com>
> wrote:
>
>> +Adding the dev group
>>
>>
>>
>> Thanks,
>>
>> Gal
>>
>>
>>
>> *From:* Gal Palmery
>> *Sent:* Sunday, May 29, 2016 15:30
>> *To:* user@geode.incubator.apache.org
>> *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
>>
>
>

Re: Async queue mechanism

Posted by Barry Oglesby <bo...@pivotal.io>.
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 <Ga...@amdocs.com> wrote:

> +Adding the dev group
>
>
>
> Thanks,
>
> Gal
>
>
>
> *From:* Gal Palmery
> *Sent:* Sunday, May 29, 2016 15:30
> *To:* user@geode.incubator.apache.org
> *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
>

Re: Async queue mechanism

Posted by Barry Oglesby <bo...@pivotal.io>.
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 <Ga...@amdocs.com> wrote:

> +Adding the dev group
>
>
>
> Thanks,
>
> Gal
>
>
>
> *From:* Gal Palmery
> *Sent:* Sunday, May 29, 2016 15:30
> *To:* user@geode.incubator.apache.org
> *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
>