Program: 19590
Project: 19590
Buggy source:
public Object invoke(RemoteOperation<?> operation,Object[] params) throws MBeanException, ReflectionException {
  ConfigurationSession configSession=configurationOwner.provideConfigurationSession();
  if (INFO.equals(operation)) {
    return new ComponentOwnerInfo(configurationOwner);
  }
  if (SESSION_AVAILABLE.equals(operation)) {
    if (configSession == null) {
      return null;
    }
 else {
      return new Integer(System.identityHashCode(configSession));
    }
  }
  if (configSession == null) {
    throw new MBeanException(new IllegalStateException("String_Node_Str" + operation + "String_Node_Str"));
  }
  if (SAVE.equals(operation)) {
    try {
      configSession.save();
      return null;
    }
 catch (    ArooaParseException e) {
      throw new MBeanException(e);
    }
  }
  if (IS_MODIFIED.equals(operation)) {
    return configSession.isModified();
  }
  DragPoint dragPoint=null;
  if (params != null && params.length > 0) {
    Object component=params[0];
    dragPoint=configSession.dragPointFor(component);
  }
  if (DRAG_POINT_INFO.equals(operation)) {
    if (dragPoint == null) {
      return null;
    }
 else {
      return new DragPointInfo(dragPoint);
    }
  }
  if (dragPoint == null) {
    throw new MBeanException(new IllegalStateException("String_Node_Str" + operation + "String_Node_Str"));
  }
  if (CUT.equals(operation)) {
    DragTransaction trn=dragPoint.beginChange(ChangeHow.FRESH);
    dragPoint.cut();
    try {
      trn.commit();
    }
 catch (    ArooaParseException e) {
      trn.rollback();
      throw new MBeanException(e);
    }
    return null;
  }
 else   if (PASTE.equals(operation)) {
    Integer index=(Integer)params[1];
    String config=(String)params[2];
    DragTransaction trn=dragPoint.beginChange(ChangeHow.FRESH);
    try {
      dragPoint.paste(index,config);
      trn.commit();
    }
 catch (    Exception e) {
      trn.rollback();
      throw new MBeanException(e);
    }
    return null;
  }
 else   if (REPLACE.equals(operation)) {
    String config=(String)params[1];
    try {
      XMLArooaParser parser=new XMLArooaParser();
      ConfigurationHandle handle=parser.parse(dragPoint);
      ArooaContext documentContext=handle.getDocumentContext();
      CutAndPasteSupport.replace(documentContext.getParent(),documentContext,new XMLConfiguration("String_Node_Str",config));
      handle.save();
    }
 catch (    ArooaParseException e) {
      throw new MBeanException(e);
    }
    return null;
  }
 else {
    throw new ReflectionException(new IllegalStateException("String_Node_Str" + operation.toString() + "String_Node_Str"),operation.toString());
  }
}

Fixed version (ground truth):
public Object invoke(RemoteOperation<?> operation,Object[] params) throws MBeanException, ReflectionException {
  if (INFO.equals(operation)) {
    return new ComponentOwnerInfo(configurationOwner);
  }
  if (SESSION_AVAILABLE.equals(operation)) {
    if (configurationSession == null) {
      return null;
    }
 else {
      return new Integer(System.identityHashCode(configurationSession));
    }
  }
  if (configurationSession == null) {
    throw new MBeanException(new IllegalStateException("String_Node_Str" + operation + "String_Node_Str"));
  }
  if (SAVE.equals(operation)) {
    try {
      configurationSession.save();
      return null;
    }
 catch (    ArooaParseException e) {
      throw new MBeanException(e);
    }
  }
  if (IS_MODIFIED.equals(operation)) {
    return configurationSession.isModified();
  }
  DragPoint dragPoint=null;
  if (params != null && params.length > 0) {
    Object component=params[0];
    dragPoint=configurationSession.dragPointFor(component);
  }
  if (DRAG_POINT_INFO.equals(operation)) {
    if (dragPoint == null) {
      return null;
    }
 else {
      return new DragPointInfo(dragPoint);
    }
  }
  if (dragPoint == null) {
    throw new MBeanException(new IllegalStateException("String_Node_Str" + operation + "String_Node_Str"));
  }
  if (CUT.equals(operation)) {
    DragTransaction trn=dragPoint.beginChange(ChangeHow.FRESH);
    dragPoint.cut();
    try {
      trn.commit();
    }
 catch (    ArooaParseException e) {
      trn.rollback();
      throw new MBeanException(e);
    }
    return null;
  }
 else   if (PASTE.equals(operation)) {
    Integer index=(Integer)params[1];
    String config=(String)params[2];
    DragTransaction trn=dragPoint.beginChange(ChangeHow.FRESH);
    try {
      dragPoint.paste(index,config);
      trn.commit();
    }
 catch (    Exception e) {
      trn.rollback();
      throw new MBeanException(e);
    }
    return null;
  }
 else   if (REPLACE.equals(operation)) {
    String config=(String)params[1];
    try {
      XMLArooaParser parser=new XMLArooaParser();
      ConfigurationHandle handle=parser.parse(dragPoint);
      ArooaContext documentContext=handle.getDocumentContext();
      CutAndPasteSupport.replace(documentContext.getParent(),documentContext,new XMLConfiguration("String_Node_Str",config));
      handle.save();
    }
 catch (    ArooaParseException e) {
      throw new MBeanException(e);
    }
    return null;
  }
 else {
    throw new ReflectionException(new IllegalStateException("String_Node_Str" + operation.toString() + "String_Node_Str"),operation.toString());
  }
}