On Jul 10, 2013, at 20:01 , Jiaan Zeng <l.alle...@gmail.com>
 wrote:

> By reset I mean that variable is 0 every time when onEvent() is
> called. Sorry for the confusion. From the wordcount point of view, it
> is correct because the "int wordCounter;" is incremented to 1 in
> onEvent(). I don't understand when and where the variable is reset to
> 0.

that variable initially has a 0 value when S4 creates a new PE instance in 
order to process a previously unseen key.

Matthieu

> 
> 
> On Wed, Jul 10, 2013 at 12:04 PM, Matthieu Morel <mmo...@apache.org> wrote:
>> 
>> On Jul 10, 2013, at 17:30 , Jiaan Zeng <l.alle...@gmail.com> wrote:
>> 
>>> Hi,
>>> 
>>> I wonder how to maintain state in ProcessElement. For example,
>>> 
>>> s4-core/src/test/java/org/apache/s4/wordcount/WordCountPE.java
>>> The variable "int wordCounter;" is used in onEvent() function and is
>>> reset to zero after the onEvent() function finishes. This is
>>> stateless.
>> 
>> I don't see where that variable is reset to 0, can you point out the code?
>> 
>>> 
>>> s4-core/src/test/java/org/apache/s4/wordcount/WordClassifierPE.java
>>> The variables "private int counter;" and "TreeMap<String, Integer>
>>> counts" are used in onEvent() function to keep total word count and
>>> word count for each word. This is stateful.
>>> 
>>> I am confused about such behavior of ProcessElement. How do I turn
>>> on/off stateless if there is such option?
>> 
>> You can keep state in instance variables.
>> 
>> Regards,
>> 
>> Matthieu
>> 
>>> 
>>> Thanks in advance.
>>> 
>>> --
>>> Regards,
>>> Jiaan
>> 
> 
> 
> 
> -- 
> Regards,
> Jiaan

Reply via email to