> On March 23, 2015, 11:29 p.m., Chris Riccomini wrote:
> > * Nit: 2 space, not 4 space for indentation.
> > * It's kind of odd to have exceptionHandler.maybeHandle { 
> > maybeHandle(coordinator, envelope, tryBlock = { ... I had a comment in the 
> > RB about consolidating this.
> > * TestTaskInstance.scala has a bunch of red-highlighted (in RB) white space 
> > indents that should be removed.

@Chris, I agree. I was working on another patch to remove the 
TaskInstanceExceptionHandler completely to consolidate this.


> On March 23, 2015, 11:29 p.m., Chris Riccomini wrote:
> > samza-api/src/main/java/org/apache/samza/task/ExceptionTask.java, line 25
> > <https://reviews.apache.org/r/32407/diff/1/?file=903332#file903332line25>
> >
> >     Javadoc

Ooops. Forgot that. Will add it.


> On March 23, 2015, 11:29 p.m., Chris Riccomini wrote:
> > samza-api/src/main/java/org/apache/samza/task/exception/TaskExceptionContext.java,
> >  line 28
> > <https://reviews.apache.org/r/32407/diff/1/?file=903333#file903333line28>
> >
> >     Rather than adding more contexts, I think we should just keep method 
> > signatures like we have with init() and process():
> >     
> >     exception(Exception e, MessageCollector collector, TaskCoordinator 
> > coordinator)
> >     
> >     Also, rather than having a lot of potentially null parameters, what do 
> > you think about having multiple callbacks in ExceptionTask, each for 
> > different points in the lifecycle (e.g. a callback with no coordinator for 
> > init, a callback with no incoming message envelope for window/commit, etc)?
> >     
> >     I'm a little concerned about usability if any param can be null at any 
> > given time. It seems more intuitive to make the callbacks explicit by 
> > having different params for different points in the lifecycle. Could even 
> > have methods names like: initException(), processException(), etc.

Good point. Let me try to refactor it w/ multiple specific APIs to avoid the 
null parameters here. I was not really sure what we would need in each of the 
exceptional cases.


> On March 23, 2015, 11:29 p.m., Chris Riccomini wrote:
> > samza-core/src/main/scala/org/apache/samza/config/TaskConfig.scala, line 95
> > <https://reviews.apache.org/r/32407/diff/1/?file=903334#file903334line95>
> >
> >     Is this ever used?

Good catch. I forgot to remove it from another experimental patch. Will remove 
it.


> On March 23, 2015, 11:29 p.m., Chris Riccomini wrote:
> > samza-core/src/main/scala/org/apache/samza/container/RunLoop.scala, line 83
> > <https://reviews.apache.org/r/32407/diff/1/?file=903335#file903335line83>
> >
> >     Seems like white space got out of whack here.

will do.


> On March 23, 2015, 11:29 p.m., Chris Riccomini wrote:
> > samza-core/src/main/scala/org/apache/samza/container/TaskInstance.scala, 
> > line 153
> > <https://reviews.apache.org/r/32407/diff/1/?file=903337#file903337line153>
> >
> >     It seems like we shouldn't have two of these here. I think 
> > TaskInstanceExceptionHandler should implement ExceptionTask, and be used 
> > when isExceptionTask is false.

I am concerned that when some user implements the ExceptionTask *and* have a 
configured suppression, he will lose the configured suppression by surprise. I 
am working on removing the exceptionHandler and handle both default configured 
suppression and the invocation of ExceptionTask methods in the single place. 
Then, we can deprecate the configured suppression w/o actually changing the 
behavior of the suppressed exception, and retire it later. If we can live w/ 
the fact that if user implements ExceptionTask automatically disables all 
configured suppressions, I would go ahead w/ your suggestion.

Thanks!


- Yi


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/32407/#review77470
-----------------------------------------------------------


On March 23, 2015, 5:39 p.m., Yi Pan (Data Infrastructure) wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/32407/
> -----------------------------------------------------------
> 
> (Updated March 23, 2015, 5:39 p.m.)
> 
> 
> Review request for samza, Yan Fang, Chinmay Soman, Chris Riccomini, Navina 
> Ramesh, and Naveen Somasundaram.
> 
> 
> Bugs: SAMZA-571
>     https://issues.apache.org/jira/browse/SAMZA-571
> 
> 
> Repository: samza
> 
> 
> Description
> -------
> 
> [SAMZA-571] Adding task interface to allow customized handling of exceptions 
> from user code in tasks
> 
> Just to add the first part: add ExceptionTask interface to allow user to add 
> code to handle the exceptions from user code in the task.
> 
> commit is also wrapped w/ the ExceptionTask since some errors such as 
> MessageSizeTooLargeException is not seen when user code calls send() but will 
> be returned by Kafka broker and thrown back in commit()
> 
> 
> Diffs
> -----
> 
>   samza-api/src/main/java/org/apache/samza/task/ExceptionTask.java 
> PRE-CREATION 
>   
> samza-api/src/main/java/org/apache/samza/task/exception/TaskExceptionContext.java
>  PRE-CREATION 
>   samza-core/src/main/scala/org/apache/samza/config/TaskConfig.scala 
> 1ca9e2cc5673c537b6a48224809847e94da81fca 
>   samza-core/src/main/scala/org/apache/samza/container/RunLoop.scala 
> 4098235c8c13fad68c8aded3b2a8a4ef07c216e7 
>   samza-core/src/main/scala/org/apache/samza/container/SamzaContainer.scala 
> 9fc3b557bdcc2756a0ddfed6642deb529936b7a9 
>   samza-core/src/main/scala/org/apache/samza/container/TaskInstance.scala 
> be0b55ace5b4b9d29f42da17fabac93bb6a25605 
>   samza-core/src/main/scala/org/apache/samza/system/SystemConsumers.scala 
> 125d37602e2c0a9da75674f37580a1ac02f94796 
>   samza-core/src/test/scala/org/apache/samza/container/TestTaskInstance.scala 
> 54b4df84f47f818d62ac0361196567ad1f430fde 
> 
> Diff: https://reviews.apache.org/r/32407/diff/
> 
> 
> Testing
> -------
> 
> Unit test added. Pass with ./gradlew clean build
> 
> 
> Thanks,
> 
> Yi Pan (Data Infrastructure)
> 
>

Reply via email to