logger/uihandlerserver/src/java/org/netbeans/server/componentsmatch/Matcher.java
changeset 2715 82895a9569d1
parent 2556 6330ec582bbd
child 2899 00d89f689610
     1.1 --- a/logger/uihandlerserver/src/java/org/netbeans/server/componentsmatch/Matcher.java	Wed Sep 26 20:48:55 2007 +0000
     1.2 +++ b/logger/uihandlerserver/src/java/org/netbeans/server/componentsmatch/Matcher.java	Tue Nov 20 18:46:51 2007 +0000
     1.3 @@ -50,6 +50,8 @@
     1.4  import java.util.List;
     1.5  import java.util.Map;
     1.6  import java.util.StringTokenizer;
     1.7 +import org.netbeans.modules.exceptions.entity.InnocentClass;
     1.8 +import org.netbeans.modules.exceptions.utils.PersistenceUtils;
     1.9  
    1.10  /**
    1.11   * convert stacktrace to Component
    1.12 @@ -58,6 +60,7 @@
    1.13      static Matcher packageMerger;
    1.14      
    1.15      static List<Package> allPackages;
    1.16 +    static List<InnocentClass> innocents;
    1.17      
    1.18      static Matcher defaultMatcher;
    1.19      static final String ORG_NETBEANS_MODULES = "org.netbeans.modules";
    1.20 @@ -108,6 +111,7 @@
    1.21       * @param stes exception stacktrace
    1.22       */
    1.23      public Component match(StackTraceElement[] stes){
    1.24 +        innocents = PersistenceUtils.getInstance().getAll(InnocentClass.class);
    1.25          Component[] comp = Matcher.getDefault().matchAll(stes);
    1.26          for (int i=0; i<comp.length; i++){
    1.27              if (comp[i] == null){
    1.28 @@ -122,6 +126,9 @@
    1.29      
    1.30      private  Component match(StackTraceElement ste) {
    1.31          String className = ste.getClassName();
    1.32 +        if (isInnocent(className)){
    1.33 +            return null;
    1.34 +        }
    1.35          int index = 0;
    1.36          while ((index = className.indexOf('.',index)) != -1) {
    1.37              if ( index + 1 < className.length()) {
    1.38 @@ -206,6 +213,15 @@
    1.39          }
    1.40      }
    1.41      
    1.42 +    private boolean isInnocent(String className){
    1.43 +        for (InnocentClass innocent : innocents) {
    1.44 +            if (className.contains(innocent.getClassname())){
    1.45 +                return true;
    1.46 +            }
    1.47 +        }
    1.48 +        return false;
    1.49 +    }
    1.50 +    
    1.51      private static boolean checkNetBeansOrgSubPackage(String pack) {
    1.52          for (String prefix : NB_ORG_PREFIXES) {
    1.53              if (pack.startsWith(prefix)) {