@Override
 public void jobCompleted(Status status) {
   reducer = null;
   in = null;
   if (out != null) {
     out.cleanup();
     out = null;
   }
   setFinalized();
 }
 @Override
 public boolean allowSliceRetry(boolean abandon) {
   boolean skipWriterCheck = !abandon && !context.emitCalled();
   return (skipWriterCheck || out.allowSliceRetry()) && reducer.allowSliceRetry();
 }
 private void fillContext() {
   context = new ReducerContextImpl<>(getContext(), out);
   in.setContext(context);
   out.setContext(context);
   reducer.setContext(context);
 }