[ https://issues.apache.org/jira/browse/TWILL-240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16120604#comment-16120604 ]
ASF GitHub Bot commented on TWILL-240: -------------------------------------- Github user chtyim commented on a diff in the pull request: https://github.com/apache/twill/pull/58#discussion_r132296480 --- Diff: twill-yarn/src/main/java/org/apache/twill/internal/appmaster/ApplicationMasterService.java --- @@ -193,7 +200,91 @@ private EventHandler createEventHandler(TwillSpecification twillSpec) throws Cla Preconditions.checkArgument(EventHandler.class.isAssignableFrom(handlerClass), "Class {} does not implements {}", handlerClass, EventHandler.class.getName()); - return Instances.newInstance((Class<? extends EventHandler>) handlerClass); + final EventHandler delegate = Instances.newInstance((Class<? extends EventHandler>) handlerClass); + if (delegate == null) { + // if no handler is specified, return an EventHandler with no-op + return new EventHandler() {}; + } + // wrap the delegate EventHandler so that all errors will be caught + return new EventHandler() { + + @Override + public void started() { + try { + delegate.started(); + } catch (Throwable t) { + LOG.warn("Exception when calling {}.started()", eventHandler.getClass().getName(), t); --- End diff -- Shouldn't it be `delegate.getClass().getName()`?? > Improve EventHandler to handle more application lifecycle events > ---------------------------------------------------------------- > > Key: TWILL-240 > URL: https://issues.apache.org/jira/browse/TWILL-240 > Project: Apache Twill > Issue Type: New Feature > Reporter: Chengfeng Mao > Assignee: Chengfeng Mao > Fix For: 0.12.0 > > > Application Master should be able to run application specific code when > certain lifecycle events happen by calling methods from EventHandler. For > instance, when the app first starts, completes, aborts and etc. -- This message was sent by Atlassian JIRA (v6.4.14#64029)