Program: 54661
Project: 54661
Buggy source:
public void processClass(ClassNode root,ClassNode node){
  if (node.type == ClassNode.CLASS_LAMBDA) {
    ClassNode node_content=DecompilerContext.getClassprocessor().getMapRootClasses().get(node.classStruct.qualifiedName);
    if (node_content != null && node_content.wrapper != null) {
      node_content.wrapper.getHideMembers().add(node.lambda_information.content_method_key);
    }
  }
  if (node.nested.isEmpty()) {
    return;
  }
  if (node.type != ClassNode.CLASS_LAMBDA) {
    computeLocalVarsAndDefinitions(node);
    checkNotFoundClasses(root,node);
  }
  int nameless=0, synthetics=0;
  for (  ClassNode child : node.nested) {
    if ((child.type == ClassNode.CLASS_LOCAL || child.type == ClassNode.CLASS_MEMBER) && child.simpleName == null) {
      StructClass cl=child.classStruct;
      if (((child.access | cl.access_flags) & CodeConstants.ACC_SYNTHETIC) != 0 || cl.getAttributes().containsKey("String_Node_Str")) {
        child.simpleName="String_Node_Str" + (++synthetics);
      }
 else {
        DecompilerContext.getLogger().writeMessage("String_Node_Str" + cl.qualifiedName + "String_Node_Str",IFernflowerLogger.WARNING);
        child.simpleName="String_Node_Str" + (++nameless);
      }
    }
  }
  for (  ClassNode child : node.nested) {
    if (child.type == ClassNode.CLASS_LAMBDA) {
      setLambdaVars(node,child);
    }
 else {
      if (child.type != ClassNode.CLASS_MEMBER || (child.access & CodeConstants.ACC_STATIC) == 0) {
        insertLocalVars(node,child);
        if (child.type == ClassNode.CLASS_LOCAL) {
          setLocalClassDefinition(node.wrapper.getMethods().getWithKey(child.enclosingMethod),child);
        }
      }
    }
  }
  for (  ClassNode child : node.nested) {
    processClass(root,child);
  }
}

Fixed version (ground truth):
public void processClass(ClassNode root,ClassNode node){
  if (node.type == ClassNode.CLASS_LAMBDA && !node.lambda_information.is_method_reference) {
    ClassNode node_content=DecompilerContext.getClassprocessor().getMapRootClasses().get(node.classStruct.qualifiedName);
    if (node_content != null && node_content.wrapper != null) {
      node_content.wrapper.getHideMembers().add(node.lambda_information.content_method_key);
    }
  }
  if (node.nested.isEmpty()) {
    return;
  }
  if (node.type != ClassNode.CLASS_LAMBDA) {
    computeLocalVarsAndDefinitions(node);
    checkNotFoundClasses(root,node);
  }
  int nameless=0, synthetics=0;
  for (  ClassNode child : node.nested) {
    if ((child.type == ClassNode.CLASS_LOCAL || child.type == ClassNode.CLASS_MEMBER) && child.simpleName == null) {
      StructClass cl=child.classStruct;
      if (((child.access | cl.access_flags) & CodeConstants.ACC_SYNTHETIC) != 0 || cl.getAttributes().containsKey("String_Node_Str")) {
        child.simpleName="String_Node_Str" + (++synthetics);
      }
 else {
        DecompilerContext.getLogger().writeMessage("String_Node_Str" + cl.qualifiedName + "String_Node_Str",IFernflowerLogger.WARNING);
        child.simpleName="String_Node_Str" + (++nameless);
      }
    }
  }
  for (  ClassNode child : node.nested) {
    if (child.type == ClassNode.CLASS_LAMBDA) {
      setLambdaVars(node,child);
    }
 else {
      if (child.type != ClassNode.CLASS_MEMBER || (child.access & CodeConstants.ACC_STATIC) == 0) {
        insertLocalVars(node,child);
        if (child.type == ClassNode.CLASS_LOCAL) {
          setLocalClassDefinition(node.wrapper.getMethods().getWithKey(child.enclosingMethod),child);
        }
      }
    }
  }
  for (  ClassNode child : node.nested) {
    processClass(root,child);
  }
}