2012-07-30 2 views
0

시스템의 모든 속성으로 모든 마커를 덤프하는 다음 일반 코드가 있습니다. 어떤 breakpoint를 설정하면 LINE_NUMBER와 IMarker.CHAR_START의 값은 명확한 값을 가지고 있음에도 불구하고 항상 null로 표시됩니다. 아무도 이해할 수 있습니까?마크 덤프는 IMarker.LINE_NUMBER 및 IMarker.CHAR_START에 대해 null을 표시합니다. 플러그인 개발 마커

private void printAllMarkers() { 
     IMarker[] markers = null; 
     IWorkspace root = ResourcesPlugin.getWorkspace(); 
     IProject projects[] = root.getRoot().getProjects(); 
     for (IProject p : projects) { 
      try { 
       markers = p.findMarkers(IMarker.MARKER, true, IResource.DEPTH_INFINITE); 
       System.out.println("\nAll Markers Are: "); 
       for (IMarker m : markers) { 
        System.out.println("-----------Marker of Type: " + m.getType()); 
        dumpMarker(m); 
       } 
      } catch (CoreException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 



    public static void dumpMarker(IMarker m) { 
     try { 
      for (String attrName : m.getAttributes().keySet()) { 
       System.out.println("Attribute:" + attrName + "=" + m.getAttribute(attrName, null)); 
      } 
     } catch (CoreException e) { 
      e.printStackTrace(); 
     } 
    } 

답변

0

이 문제점을 발견했습니다. 'supertype' 에서 나온 값을 null로 표시하는 Eclipse 버그입니다. 따라서 getAttribute (attrName, null)은 속성이 있어도 lineStart에 null을 반환합니다 ..