if (logger.isLoggable(BasicLevel.DEBUG))
logger.log(BasicLevel.DEBUG, "read conn=" + conn
+ " / oid=" + oid
+ " / obj.class=" + obj.getClass().getName()
+ " / tx=" + ws);
StateItf state = (StateItf) obj;
PersistentObjectItf pb = (PersistentObjectItf) state.getSpeedoPO();
int speedoStatus = state.speedoGetStatus();
if (pb.getStatus() == PBinding.LIFECYCLE_DELTOWRITE
&& speedoStatus != LifeCycle.PERSISTENT_DELETED
&& speedoStatus != LifeCycle.PERSISTENT_NEW_DELETED) {
throw new PersistenceException(
"Concurrency problem, transaction must be rolledback");
}
Object ctx = usePrefetchBuffer(ws, oid) ? ws : null;
try {
pb.read(conn, state, ctx, forUpdate);
ws.bind(state, oid, WorkingSet.UNKNOWN_INTENTION);
//modified with rebind
state.indexFieldModified(Integer.MAX_VALUE, true);
pb.speedoGetHome().sendEvent(HomeItf.POST_LOAD, pb, null);
} catch (PExceptionNoDSI e) {
if (logger.isLoggable(BasicLevel.DEBUG)) {
logger.log(BasicLevel.DEBUG, "read ==> NO DSI");
}