Program: 54658
Project: 54658
Buggy source:
public boolean methodLambdaToJava(ClassNode node_lambda,ClassNode node_content,StructMethod mt,BufferedWriter writer,int indent,boolean code_only) throws IOException {
  ClassWrapper wrapper=node_content.wrapper;
  MethodWrapper meth=wrapper.getMethodWrapper(mt.getName(),mt.getDescriptor());
  MethodWrapper methold=(MethodWrapper)DecompilerContext.getProperty(DecompilerContext.CURRENT_METHOD_WRAPPER);
  DecompilerContext.setProperty(DecompilerContext.CURRENT_METHOD_WRAPPER,meth);
  String indstr=InterpreterUtil.getIndentString(indent);
  String method_name=node_lambda.lambda_information.method_name;
  MethodDescriptor md_content=MethodDescriptor.parseDescriptor(node_lambda.lambda_information.content_method_descriptor);
  MethodDescriptor md_lambda=MethodDescriptor.parseDescriptor(node_lambda.lambda_information.method_descriptor);
  StringWriter strwriter=new StringWriter();
  BufferedWriter bufstrwriter=new BufferedWriter(strwriter);
  if (!code_only) {
    bufstrwriter.write(indstr);
    bufstrwriter.write("String_Node_Str");
    bufstrwriter.write(method_name);
    bufstrwriter.write("String_Node_Str");
    boolean firstpar=true;
    int index=1;
    int start_index=md_content.params.length - md_lambda.params.length;
    for (int i=0; i < md_content.params.length; i++) {
      if (i >= start_index) {
        if (!firstpar) {
          bufstrwriter.write("String_Node_Str");
        }
        VarType partype=md_content.params[i].copy();
        String strpartype=ExprProcessor.getCastTypeName(partype);
        if (ExprProcessor.UNDEFINED_TYPE_STRING.equals(strpartype) && DecompilerContext.getOption(IFernflowerPreferences.UNDEFINED_PARAM_TYPE_OBJECT)) {
          strpartype=ExprProcessor.getCastTypeName(VarType.VARTYPE_OBJECT);
        }
        bufstrwriter.write(strpartype);
        bufstrwriter.write("String_Node_Str");
        String parname=meth.varproc.getVarName(new VarVersionPaar(index,0));
        bufstrwriter.write(parname == null ? "String_Node_Str" + index : parname);
        firstpar=false;
      }
      index+=md_content.params[i].stack_size;
    }
    bufstrwriter.write("String_Node_Str");
    bufstrwriter.write("String_Node_Str");
    bufstrwriter.write("String_Node_Str");
    bufstrwriter.write(DecompilerContext.getNewLineSeparator());
  }
  RootStatement root=wrapper.getMethodWrapper(mt.getName(),mt.getDescriptor()).root;
  if (root != null && !meth.decompiledWithErrors) {
    try {
      String code=root.toJava(indent + 1);
      bufstrwriter.write(code);
    }
 catch (    Throwable ex) {
      DecompilerContext.getLogger().writeMessage("String_Node_Str" + mt.getName() + "String_Node_Str"+ mt.getDescriptor()+ "String_Node_Str",ex);
      meth.decompiledWithErrors=true;
    }
  }
  if (meth.decompiledWithErrors) {
    bufstrwriter.write(InterpreterUtil.getIndentString(indent + 1));
    bufstrwriter.write("String_Node_Str");
    bufstrwriter.write(DecompilerContext.getNewLineSeparator());
  }
  if (!code_only) {
    bufstrwriter.write(indstr + "String_Node_Str");
    bufstrwriter.write(DecompilerContext.getNewLineSeparator());
  }
  bufstrwriter.flush();
  writer.write(strwriter.toString());
  DecompilerContext.setProperty(DecompilerContext.CURRENT_METHOD_WRAPPER,methold);
  return true;
}

Fixed version (ground truth):
public boolean methodLambdaToJava(ClassNode node_lambda,ClassNode node_content,StructMethod mt,BufferedWriter writer,int indent,boolean code_only) throws IOException {
  ClassWrapper wrapper=node_content.wrapper;
  MethodWrapper meth=wrapper.getMethodWrapper(mt.getName(),mt.getDescriptor());
  MethodWrapper methold=(MethodWrapper)DecompilerContext.getProperty(DecompilerContext.CURRENT_METHOD_WRAPPER);
  DecompilerContext.setProperty(DecompilerContext.CURRENT_METHOD_WRAPPER,meth);
  String indstr=InterpreterUtil.getIndentString(indent);
  String method_name=node_lambda.lambda_information.method_name;
  MethodDescriptor md_content=MethodDescriptor.parseDescriptor(node_lambda.lambda_information.content_method_descriptor);
  MethodDescriptor md_lambda=MethodDescriptor.parseDescriptor(node_lambda.lambda_information.method_descriptor);
  StringWriter strwriter=new StringWriter();
  BufferedWriter bufstrwriter=new BufferedWriter(strwriter);
  if (!code_only) {
    bufstrwriter.write(indstr);
    bufstrwriter.write("String_Node_Str");
    bufstrwriter.write(method_name);
    bufstrwriter.write("String_Node_Str");
    boolean firstpar=true;
    int index=node_lambda.lambda_information.is_content_method_static ? 0 : 1;
    ;
    int start_index=md_content.params.length - md_lambda.params.length;
    for (int i=0; i < md_content.params.length; i++) {
      if (i >= start_index) {
        if (!firstpar) {
          bufstrwriter.write("String_Node_Str");
        }
        VarType partype=md_content.params[i].copy();
        String strpartype=ExprProcessor.getCastTypeName(partype);
        if (ExprProcessor.UNDEFINED_TYPE_STRING.equals(strpartype) && DecompilerContext.getOption(IFernflowerPreferences.UNDEFINED_PARAM_TYPE_OBJECT)) {
          strpartype=ExprProcessor.getCastTypeName(VarType.VARTYPE_OBJECT);
        }
        bufstrwriter.write(strpartype);
        bufstrwriter.write("String_Node_Str");
        String parname=meth.varproc.getVarName(new VarVersionPaar(index,0));
        bufstrwriter.write(parname == null ? "String_Node_Str" + index : parname);
        firstpar=false;
      }
      index+=md_content.params[i].stack_size;
    }
    bufstrwriter.write("String_Node_Str");
    bufstrwriter.write("String_Node_Str");
    bufstrwriter.write("String_Node_Str");
    bufstrwriter.write(DecompilerContext.getNewLineSeparator());
  }
  RootStatement root=wrapper.getMethodWrapper(mt.getName(),mt.getDescriptor()).root;
  if (root != null && !meth.decompiledWithErrors) {
    try {
      String code=root.toJava(indent + 1);
      bufstrwriter.write(code);
    }
 catch (    Throwable ex) {
      DecompilerContext.getLogger().writeMessage("String_Node_Str" + mt.getName() + "String_Node_Str"+ mt.getDescriptor()+ "String_Node_Str",ex);
      meth.decompiledWithErrors=true;
    }
  }
  if (meth.decompiledWithErrors) {
    bufstrwriter.write(InterpreterUtil.getIndentString(indent + 1));
    bufstrwriter.write("String_Node_Str");
    bufstrwriter.write(DecompilerContext.getNewLineSeparator());
  }
  if (!code_only) {
    bufstrwriter.write(indstr + "String_Node_Str");
    bufstrwriter.write(DecompilerContext.getNewLineSeparator());
  }
  bufstrwriter.flush();
  writer.write(strwriter.toString());
  DecompilerContext.setProperty(DecompilerContext.CURRENT_METHOD_WRAPPER,methold);
  return true;
}