untrace("add", null);
untrace("add", result[0]);
    private Object addInternal(final Object obj, Property prop,                               final Object value) {        if (LOG.isDebugEnabled()) {            trace("add", new Object[] {obj, prop.getName(), value});        }        prop.dispatch(new Property.Switch() {                public void onRole(Role role) {                    PropertyEvent ev;                    try {                        ev = new AddEvent(Session.this, obj, role, value);                    } catch (TypeException te) {                        te.setInternal(false);                        throw te;                    }                    if (role.isReversable()) { reverseUpdateNew(ev); }                    addEvent(ev);                }                public void onAlias(Alias alias) {                    add(obj, alias.getTarget(), value);                }                public void onLink(Link link) {                    // should deal with link attributes here                    throw new Error("not implemented");                }            });        if (LOG.isDebugEnabled()) {            untrace("add", null);        }        return null;    }