code: public static boolean isValidLineNumber(Code obj, int pc) {
          LineNumberTable lnt = obj.getLineNumberTable();
          if (lnt == null)
              return true;
  
          LineNumber[] lineNumbers = lnt.getLineNumberTable();
          if (lineNumbers == null)
              return true;
  
          int lo = 0;
          int hi = lineNumbers.length - 1;
          int mid = 0;
          int linePC = 0;
          while (lo <= hi) {
              mid = (lo + hi) >>> 1;
              linePC = lineNumbers[mid].getStartPC();
              if (linePC == pc)
                  break;
              if (linePC < pc)
                  lo = mid + 1;
              else
                  hi = mid - 1;
          }
  
          int lineNo = lineNumbers[mid].getLineNumber();
  
          for (int i = 0; i < lineNumbers.length; i++) {
              if ((mid != i) && (lineNumbers[i].getLineNumber() == lineNo))
                  return false;
          }
  
          return true;
      }
docs: returns whether the pc is at a line number that also appears for a another byte code offset later on in the method. If this occurs we are in a jdk6
  finally replicated block, and so don't report this. If the code has no line number table, then just report it.
  
  @param obj
  the code object to find line number attributes from
  @param pc
  the pc to check
  
  @return whether the pc is in user code