code: public static InterestingSomething getInterestingSomething(Throwable cause, File sourceDir) {
          InterestingSomething something = null;
          for (StackTraceElement stackTraceElement : cause.getStackTrace()) {
              if (stackTraceElement.getLineNumber() > 0) {
                  String path = stackTraceElement.getClassName().replace(".", "/");
                  path = path.substring(0, path.lastIndexOf("/"));
                  File source = new File(sourceDir, path);
                  if (source.exists() && source.isDirectory()) {
                      String fN = stackTraceElement.getFileName();
                      int index = fN.indexOf("$");
                      if (index < 0) {
                          fN = fN.substring(0, fN.indexOf("."));
                      } else {
                          fN = fN.substring(0, index);
                      }
                      source = new File(source, fN + ".java");
                      if (something == null) {
                          something = new InterestingSomething(stackTraceElement, source);
                          something.setUsefulFiles(Lists.newArrayList());
                          something.setUsefulStackTraceElement(Lists.newArrayList());
                      } else {
                          if (source.exists()) {
                              something.getUsefulStackTraceElements().add(stackTraceElement);
                              something.getUsefulFiles().add(source);
                          }
                      }
                  }
              }
          }
          return something;
      }
docs: <p>getInterestingSomething.</p>
  
  @param cause     a {@link java.lang.Throwable} object.
  @param sourceDir source dir
  @return a {@link ameba.exception.AmebaException.InterestingSomething} object.