if (!hasStateManager(pc)) { PropertyMap pmap = pmap(pc, type); StateManagerImpl smi = newSM(pc, pmap);
Root root = m_ssn.getRoot();
    void makePersistent(PersistenceCapable pc, ObjectType type) {        if (!m_txn.isActive()) {            throw new JDOUserException("No active transaction");        }        Class cls = pc.getClass();        if (!hasStateManager(pc)) {            PropertyMap pmap = pmap(pc, type);            StateManagerImpl smi = newSM(pc, pmap);            Map values = new HashMap();            m_ssn.create(pc);            List props = m_classInfo.getAllFields(cls);            for (int i = 0; i < props.size(); i++) {                String propName = smi.getPrefix() + ((String) props.get(i));                if (C.isComponent(type, propName)                    || !type.hasProperty(propName)                    || !type.getProperty(propName).isKeyProperty()) {                    smi.setObjectField(pc, i, null, smi.provideField(pc, i));                }            }        }    }