Program: 43573
Project: 43573
Buggy source:
public ObjectProxy make(IocMaking ing,IocObject iobj){
  Mirror<?> mirror=ing.getMirrors().getMirror(iobj.getType(),ing.getObjectName());
  ObjectProxy op=new ObjectProxy();
  if (iobj.isSingleton() && null != ing.getObjectName())   ing.getContext().save(iobj.getScope(),ing.getObjectName(),op);
  try {
    DynamicWeaver dw;
    if (iobj.isSingleton())     dw=new StaticWeaver();
 else     dw=new DynamicWeaver();
    if (null != iobj.getEvents()) {
      IocEventSet iocEventSet=iobj.getEvents();
      op.setFetch(createTrigger(mirror,iocEventSet.getFetch()));
      dw.setCreate(createTrigger(mirror,iocEventSet.getCreate()));
      dw.setDepose(createTrigger(mirror,iocEventSet.getDepose()));
    }
    ValueProxy[] vps=new ValueProxy[Lang.length(iobj.getArgs())];
    for (int i=0; i < vps.length; i++)     vps[i]=ing.makeValue(iobj.getArgs()[i]);
    dw.setArgs(vps);
    Object[] args=new Object[vps.length];
    for (int i=0; i < args.length; i++)     args[i]=vps[i].get(ing);
    dw.setBorning((Borning<?>)mirror.getBorning(args));
    FieldInjector[] fields=new FieldInjector[iobj.getFields().length];
    for (int i=0; i < fields.length; i++) {
      IocField ifld=iobj.getFields()[i];
      try {
        ValueProxy vp=ing.makeValue(ifld.getValue());
        fields[i]=FieldInjector.create(mirror,ifld.getName(),vp);
      }
 catch (      Exception e) {
        throw Lang.wrapThrow(e,"String_Node_Str",ifld.getName());
      }
    }
    dw.setFields(fields);
    op.setWeaver(dw);
  }
 catch (  Throwable e) {
    ing.getContext().remove(iobj.getScope(),ing.getObjectName());
    throw Lang.wrapThrow(e);
  }
  return op;
}

Fixed version (ground truth):
public ObjectProxy make(IocMaking ing,IocObject iobj){
  Mirror<?> mirror=ing.getMirrors().getMirror(iobj.getType(),ing.getObjectName());
  IocEventSet iocEventSet=iobj.getEvents();
  ObjectProxy op=new ObjectProxy();
  if (iobj.isSingleton() && null != ing.getObjectName())   ing.getContext().save(iobj.getScope(),ing.getObjectName(),op);
  if (null != iobj.getEvents()) {
    op.setFetch(createTrigger(mirror,iocEventSet.getFetch()));
    op.setDepose(createTrigger(mirror,iocEventSet.getDepose()));
  }
  try {
    DefaultWeaver dw=new DefaultWeaver();
    op.setWeaver(dw);
    if (null != iobj.getEvents()) {
      dw.setCreate(createTrigger(mirror,iocEventSet.getCreate()));
    }
    ValueProxy[] vps=new ValueProxy[Lang.length(iobj.getArgs())];
    for (int i=0; i < vps.length; i++)     vps[i]=ing.makeValue(iobj.getArgs()[i]);
    dw.setArgs(vps);
    Object[] args=new Object[vps.length];
    for (int i=0; i < args.length; i++)     args[i]=vps[i].get(ing);
    dw.setBorning((Borning<?>)mirror.getBorning(args));
    Object obj=null;
    if (iobj.isSingleton()) {
      obj=dw.born(ing);
      op.setObj(obj);
    }
    FieldInjector[] fields=new FieldInjector[iobj.getFields().length];
    for (int i=0; i < fields.length; i++) {
      IocField ifld=iobj.getFields()[i];
      try {
        ValueProxy vp=ing.makeValue(ifld.getValue());
        fields[i]=FieldInjector.create(mirror,ifld.getName(),vp);
      }
 catch (      Exception e) {
        throw Lang.wrapThrow(e,"String_Node_Str",ifld.getName());
      }
    }
    dw.setFields(fields);
    if (null != obj)     dw.fill(ing,obj);
  }
 catch (  Throwable e) {
    ing.getContext().remove(iobj.getScope(),ing.getObjectName());
    throw Lang.wrapThrow(e);
  }
  return op;
}