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