private void recordFailure(final Mutation m, final long keyBase, final long start,
      IOException e) {
      failedKeySet.add(keyBase);
      String exceptionInfo;
      if (e instanceof RetriesExhaustedWithDetailsException) {
        RetriesExhaustedWithDetailsException aggEx = (RetriesExhaustedWithDetailsException) e;
        exceptionInfo = aggEx.getExhaustiveDescription();
      } else {
        StringWriter stackWriter = new StringWriter();
        PrintWriter pw = new PrintWriter(stackWriter);
        e.printStackTrace(pw);
        pw.flush();
        exceptionInfo = StringUtils.stringifyException(e);
      }
      LOG.error("Failed to mutate: " + keyBase + " after "
        + (EnvironmentEdgeManager.currentTime() - start) + "ms; region information: "
        + getRegionDebugInfoSafe(table, m.getRow()) + "; errors: " + exceptionInfo);
    }
Maps user with Table instance. Because the table instance has to be created per user inorder to
work in that user's context
hbase-diagnostics/src/main/java/org/apache/hadoop/hbase/util/MultiThreadedUpdaterWithACL.java