[
https://issues.apache.org/jira/browse/BEAM-5638?focusedWorklogId=201340&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-201340
]
ASF GitHub Bot logged work on BEAM-5638:
----------------------------------------
Author: ASF GitHub Bot
Created on: 20/Feb/19 14:43
Start Date: 20/Feb/19 14:43
Worklog Time Spent: 10m
Work Description: jklukas commented on issue #7736: [BEAM-5638] Exception
handling for Java MapElements and FlatMapElements
URL: https://github.com/apache/beam/pull/7736#issuecomment-465605413
I've pushed two new commits to address @reuvenlax's points:
- I factored out the DoFn to a nested class. I didn't make it a static class
since it shares so much state with FlatMapWithExceptions, including delegating
`populateDisplayData`. It's tempting to try to factor out a single DoFn that
would be used by FlatMapElements and FlatMapWithExceptions, or a single DoFn
that would be used by FlatMapWithExceptions and MapWithExceptions, but I'm
trying to avoid introducing too many wrapper functions or unused outputs. I
also like how FlatMapElements is fairly self-contained; there's a lot in the
class, but it tells you nearly all you need to know to understand how it works.
- I changed the interface to use `exceptionsInto` and `exceptionsVia`. This
removes the confusion over duplicated method names that @reuvenlax pointed to,
but maintains symmetry with the methods of FlatMapElements. I think the
symmetry is helpful to give users a hint that ordering of the methods remains
important (exceptionsInto must be called before exceptionsVia, just like into
must be called before via).
Once we have agreement on these changes, I'll make the corresponding changes
for MapElements.
I'd like some additional input on naming. I'm currently using a mixture of
"exception", "error", and "failure" and I'd like to tighten up that language.
"Exception" has a specific technical meaning that fits in well for talking
about an "exceptionHandler" and makes it explicit to users that the kind of
failures we're handling are indeed Java Exceptions, but once an exception is
handled and we transform it into some output element, it's no longer
technically an exception. We can call this output an "error element", but
"Error" is problematic because it also has a specific technical meaning in Java
that is not relevant to this situation. "Failure" doesn't have the problem of
an overloaded technical meaning, but seems slightly less natural than "error".
So, are `Result#output()` and `Result#errors()` reasonable names or would
`Result#failures()` be better? And `WithExceptions` might be better called
`WithFailures`, although that makes it less obvious that it's intended to be
used for exception handling specifically.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 201340)
Time Spent: 8h 10m (was: 8h)
Remaining Estimate: 159h 50m (was: 160h)
> Add exception handling to single message transforms in Java SDK
> ---------------------------------------------------------------
>
> Key: BEAM-5638
> URL: https://issues.apache.org/jira/browse/BEAM-5638
> Project: Beam
> Issue Type: Improvement
> Components: sdk-java-core
> Reporter: Jeff Klukas
> Assignee: Jeff Klukas
> Priority: Minor
> Labels: triaged
> Original Estimate: 168h
> Time Spent: 8h 10m
> Remaining Estimate: 159h 50m
>
> Add methods to MapElements, FlatMapElements, and Filter that allow users to
> specify expected exceptions and tuple tags to associate with the with
> collections of the successfully and unsuccessfully processed elements.
> See discussion on dev list:
> https://lists.apache.org/thread.html/936ed2a5f2c01be066fd903abf70130625e0b8cf4028c11b89b8b23f@%3Cdev.beam.apache.org%3E
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)