code: private String extractUnifiedObjectName(String objectName) {
      Path p = new Path(objectName);
      int attemptIndex = objectName.indexOf(HADOOP_ATTEMPT);
      int dotIndex = objectName.lastIndexOf('.');
      if (attemptIndex >= 0 && dotIndex > attemptIndex) {
        String attempt = objectName.substring(attemptIndex, dotIndex);
        try {
          TaskAttemptID.forName(attempt);
          return p.getParent().toString();
        } catch (IllegalArgumentException e) {
          return objectName;
        }
      } else if (objectName.indexOf(HADOOP_SUCCESS) > 0) {
        return p.getParent().toString();
      }
      return objectName;
    }
docs: Accepts any object name.
  If object name of the form
  a/b/c/gil.data/part-r-00000-48ae3461-203f-4dd3-b141-a45426e2d26c
  -attempt_20160317132a_wrong_0000_m_000000_1.csv
  Then a/b/c/gil.data is returned.
  Code testing that attempt_20160317132a_wrong_0000_m_000000_1 is valid
  task id identifier
  
  @param objectName
  @return unified object name