Program: 167884
Project: 167884
Buggy source:
@Override public Collection<CommandArgument> getArguments(CommandContext ctx){
  ParsedCommandLine args=ctx.getParsedCommandLine();
  try {
    if (!name.isValueComplete(args)) {
      return staticArgs;
    }
  }
 catch (  CommandFormatException e) {
    return Collections.emptyList();
  }
  final String op=operation.getValue(args);
  if (op == null) {
    if (nodeProps == null) {
      final List<Property> propList=getNodeProperties(ctx);
      final Map<String,CommandArgument> argMap=new HashMap<String,CommandArgument>(propList.size());
      for (int i=0; i < propList.size(); ++i) {
        final Property prop=propList.get(i);
        final ModelNode propDescr=prop.getValue();
        if (propDescr.has("String_Node_Str") && "String_Node_Str".equals(propDescr.get("String_Node_Str").asString())) {
          ModelType type=null;
          CommandLineCompleter valueCompleter=null;
          ArgumentValueConverter valueConverter=ArgumentValueConverter.DEFAULT;
          if (propDescr.has("String_Node_Str")) {
            type=propDescr.get("String_Node_Str").asType();
            if (ModelType.BOOLEAN == type) {
              valueCompleter=SimpleTabCompleter.BOOLEAN;
            }
 else             if (prop.getName().endsWith("String_Node_Str")) {
              valueConverter=ArgumentValueConverter.PROPERTIES;
            }
 else             if (ModelType.LIST == type) {
              valueConverter=ArgumentValueConverter.LIST;
            }
          }
          final CommandArgument arg=new ArgumentWithValue(GenericTypeOperationHandler.this,valueCompleter,valueConverter,"String_Node_Str" + prop.getName());
          argMap.put(arg.getFullName(),arg);
        }
      }
      nodeProps=argMap;
    }
    return nodeProps.values();
  }
 else {
    if (propsByOp == null) {
      propsByOp=new HashMap<String,Map<String,CommandArgument>>();
    }
    Map<String,CommandArgument> opProps=propsByOp.get(op);
    if (opProps == null) {
      final ModelNode descr;
      try {
        descr=getOperationDescription(ctx,op);
      }
 catch (      IOException e1) {
        return Collections.emptyList();
      }
      if (descr == null || !descr.has("String_Node_Str")) {
        opProps=Collections.emptyMap();
      }
 else {
        final List<Property> propList=descr.get("String_Node_Str").asPropertyList();
        opProps=new HashMap<String,CommandArgument>(propList.size());
        for (        Property prop : propList) {
          final ModelNode propDescr=prop.getValue();
          ModelType type=null;
          CommandLineCompleter valueCompleter=null;
          ArgumentValueConverter valueConverter=ArgumentValueConverter.DEFAULT;
          if (propDescr.has("String_Node_Str")) {
            type=propDescr.get("String_Node_Str").asType();
            if (ModelType.BOOLEAN == type) {
              valueCompleter=SimpleTabCompleter.BOOLEAN;
            }
 else             if (prop.getName().endsWith("String_Node_Str")) {
              valueConverter=ArgumentValueConverter.PROPERTIES;
            }
 else             if (ModelType.LIST == type) {
              valueConverter=ArgumentValueConverter.LIST;
            }
          }
          final CommandArgument arg=new ArgumentWithValue(GenericTypeOperationHandler.this,valueCompleter,valueConverter,"String_Node_Str" + prop.getName());
          opProps.put(arg.getFullName(),arg);
        }
      }
      propsByOp.put(op,opProps);
    }
    return opProps.values();
  }
}

Fixed version (ground truth):
@Override public Collection<CommandArgument> getArguments(CommandContext ctx){
  ParsedCommandLine args=ctx.getParsedCommandLine();
  try {
    if (!name.isValueComplete(args)) {
      return staticArgs;
    }
  }
 catch (  CommandFormatException e) {
    return Collections.emptyList();
  }
  final String op=operation.getValue(args);
  return loadArguments(ctx,op).values();
}