Program: 28688
Project: 28688
Buggy source:
protected void readAnnotations(ReadableArchive archive,T descriptor,Map<ExtensionsArchivist,RootDeploymentDescriptor> extensions,ModuleScanner scanner) throws IOException {
  if (isProcessAnnotation(descriptor)) {
    try {
      if (scanner == null) {
        scanner=getScanner();
      }
      ProcessingResult result=processAnnotations(descriptor,scanner,archive);
      for (      Map.Entry<ExtensionsArchivist,RootDeploymentDescriptor> extension : extensions.entrySet()) {
        try {
          if (extension.getValue() == null) {
            RootDeploymentDescriptor o=extension.getKey().getDefaultDescriptor();
            if (o != null) {
              o.setModuleDescriptor(descriptor.getModuleDescriptor());
            }
            processAnnotations(o,extension.getKey().getScanner(),archive);
            if (o != null && !o.isEmpty()) {
              extension.getKey().addExtension(descriptor,o);
              extensions.put(extension.getKey(),(RootDeploymentDescriptor)o);
            }
          }
 else {
            processAnnotations(extension.getValue(),extension.getKey().getScanner(),archive);
          }
        }
 catch (        AnnotationProcessorException ex) {
          DOLUtils.getDefaultLogger().severe(ex.getMessage());
          DOLUtils.getDefaultLogger().log(Level.FINE,ex.getMessage(),ex);
          throw new IllegalStateException(ex);
        }
      }
      if (result != null && ResultType.FAILED.equals(result.getOverallResult())) {
        DOLUtils.getDefaultLogger().severe(localStrings.getLocalString("String_Node_Str","String_Node_Str",new Object[]{archive.getURI()}));
      }
    }
 catch (    NoClassDefFoundError err) {
      if (DOLUtils.getDefaultLogger().isLoggable(Level.WARNING)) {
        DOLUtils.getDefaultLogger().warning("String_Node_Str" + err);
      }
    }
catch (    AnnotationProcessorException ex) {
      DOLUtils.getDefaultLogger().severe(ex.getMessage());
      DOLUtils.getDefaultLogger().log(Level.FINE,ex.getMessage(),ex);
      throw new IllegalStateException(ex);
    }
  }
 else   if (DOLUtils.getDefaultLogger().isLoggable(Level.FINE)) {
    DOLUtils.getDefaultLogger().fine("String_Node_Str");
  }
}

Fixed version (ground truth):
protected void readAnnotations(ReadableArchive archive,T descriptor,Map<ExtensionsArchivist,RootDeploymentDescriptor> extensions,ModuleScanner scanner) throws IOException {
  try {
    boolean processAnnotationForMainDescriptor=isProcessAnnotation(descriptor);
    ProcessingResult result=null;
    if (processAnnotationForMainDescriptor) {
      if (scanner == null) {
        scanner=getScanner();
      }
      result=processAnnotations(descriptor,scanner,archive);
    }
    for (    Map.Entry<ExtensionsArchivist,RootDeploymentDescriptor> extension : extensions.entrySet()) {
      try {
        if (extension.getValue() == null) {
          if (processAnnotationForMainDescriptor) {
            RootDeploymentDescriptor o=extension.getKey().getDefaultDescriptor();
            if (o != null) {
              o.setModuleDescriptor(descriptor.getModuleDescriptor());
            }
            processAnnotations(o,extension.getKey().getScanner(),archive);
            if (o != null && !o.isEmpty()) {
              extension.getKey().addExtension(descriptor,o);
              extensions.put(extension.getKey(),(RootDeploymentDescriptor)o);
            }
          }
        }
 else {
          BundleDescriptor extBundle;
          if (extension.getValue() instanceof BundleDescriptor) {
            extBundle=(BundleDescriptor)extension.getValue();
            if (isProcessAnnotation(extBundle)) {
              processAnnotations(extBundle,extension.getKey().getScanner(),archive);
            }
          }
        }
      }
 catch (      AnnotationProcessorException ex) {
        DOLUtils.getDefaultLogger().severe(ex.getMessage());
        DOLUtils.getDefaultLogger().log(Level.FINE,ex.getMessage(),ex);
        throw new IllegalStateException(ex);
      }
    }
    if (result != null && ResultType.FAILED.equals(result.getOverallResult())) {
      DOLUtils.getDefaultLogger().severe(localStrings.getLocalString("String_Node_Str","String_Node_Str",new Object[]{archive.getURI()}));
    }
  }
 catch (  NoClassDefFoundError err) {
    if (DOLUtils.getDefaultLogger().isLoggable(Level.WARNING)) {
      DOLUtils.getDefaultLogger().warning("String_Node_Str" + err);
    }
  }
catch (  AnnotationProcessorException ex) {
    DOLUtils.getDefaultLogger().severe(ex.getMessage());
    DOLUtils.getDefaultLogger().log(Level.FINE,ex.getMessage(),ex);
    throw new IllegalStateException(ex);
  }
}