processPending();
    private void createInternal(Object obj) {        if (LOG.isDebugEnabled()) {            trace("create", new Object[] {obj});        }        ObjectData od = getObjectData(obj);        if (od == null) {            od = new ObjectData(this, obj, od.INFANTILE);        } else if (!od.isDeleted()) {            od.dump();            throw new IllegalArgumentException                ("Object already exists: " + obj);        } else {            od.setState(od.INFANTILE);        }        getAdapter(obj).setSession(obj, this);        addEvent(new CreateEvent(this, obj));        // XXX: needed?        processPending();        PropertyMap props = getAdapter(obj).getProperties(obj);        for (Iterator it = props.entrySet().iterator(); it.hasNext(); ) {            Map.Entry me = (Map.Entry) it.next();            setInternal(obj, (Property) me.getKey(), me.getValue());        }        if (LOG.isDebugEnabled()) {            untrace("create");        }    }