// We'll create a StateManager for a fresh PC object and then copy the
// pk field of the parameter value into the fresh PC object. We will
// the extract the PK value from the fresh PC object. The reason we
// don't want to associate the state manager with the parameter value is
// that this would be a very surprising (and meaningful) side effect.
StateManager sm = apiAdapter.newStateManager(getObjectManager(), acmd);
sm.initialiseForHollow(null, null, value.getClass());
sm.copyFieldsFromObject((PersistenceCapable) value, acmd.getPKMemberPositions());
jdoPrimaryKey = sm.provideField(acmd.getPKMemberPositions()[0]);
}
if (jdoPrimaryKey == null) {