Hibernate version: 2.1.6
Can anyone explain the reason why the PersistentCollection.class needs to throw a LazyInitializationException if a session is disconnected?
In that circumstance could it not connect and then disconnect instead, perhaps change the code to:
Code:
protected final void initialize(boolean writing) {
if (!initialized) {
if (initializing) throw new AssertionFailure("cannot access loading collection");
if ( isConnectedToSession() ) {
if ( session.isConnected() ) {
try {
session.initializeCollection(this, writing);
}
catch (Exception e) {
LogFactory.getLog(PersistentCollection.class).error(
"Failed to lazily initialize a collection", e
);
throw new LazyInitializationException("Failed to lazily initialize a collection", e);
}
}
else {
session.reconnect();
try {
session.initializeCollection(this, writing);
}
catch (Exception e) {
LogFactory.getLog(PersistentCollection.class).error(
"Failed to lazily initialize a collection", e
);
throw new LazyInitializationException("Failed to lazily initialize a collection", e);
}
session.disconnect();
//throw new LazyInitializationException("Failed to lazily initialize a collection - session is disconnected");
}
}
else {
throw new LazyInitializationException("Failed to lazily initialize a collection - no session or session was closed");
}
}
}
[/code]