* @return
*/
private IdFactory makeVorbaIdFactory() {
- return new IdFactory(getSessionHandle(), client, user);
+ if (extantobjects==null)
+ extantobjects=new Hashtable();
+ return new IdFactory(getSessionHandle(), client, user, extantobjects);
}
/**
new Thread() {
public void run() {
SimpleClient.log.debug("Stopping pickManager..");
- dying.pickmanager.haltPickManager();
+ dying.pickmanager.shutdown();
SimpleClient.log.debug("pickManager halted.");
}
}.start();
// if (handlers.containsKey(Events.))
// if (handlers.containsKey(Events.CLIENT_FINALIZATION))
// deregister listeners.
+ log.debug("Stopping pickManager");
haltPickmanager();
- SimpleClient.log.debug("Stopping EventGenerator..");
+ log.debug("Stopping EventGenerator..");
evgen.stopWatching();
SimpleClient.log.debug("EventGenerator halted.");
log.debug("Deregistering Client");
log.debug("updateDocument for "+session.getSessionUrn()+" with unmodified IClientDocument (skipping the write)");
} else {
try {
- if (!cdocument.updateSessionDocument()) {
+ boolean updated=cdocument.updateSessionDocument();
+ if (!updated) {
log.warn("Session document did not update properly for session directory "+_session.sessionDir);
// cdocument.archive.cancelArchive(); // LATER: could be done - would need to prevent updateSessionDocument closing the iohandler.
_session.slog.warn("Session Document updated but may not be valid (false return from org.vamsas.simpleclient.ClientDocument.updateSessionDocument()");
+ } else {
+ log.debug("Document update successful.");
}
- log.debug("Document update successful.");
+ _session.setUnsavedFlag();
}
catch (IOException e) {
log.warn("IO Problems when updating document!",e);
_session.slog.error("IO problems when attempting to update document.");
}
}
- try {
- _session.setUnsavedFlag();
- _session.unlockVamsasDocument();
- evgen.enableDocumentWatch();
- } catch (IOException e) {
- log.warn("IO Problems when releasing lock on session document!",e);
- _session.slog.error("IO problems when attempting to release lock on session document.");
- }
// garbage collect the ClientDocument instance.
try {
log.debug("Finalizing ClientDocument instance.");
log.error("Exception when trying to garbage collect ClientDocument for "+session.getSessionUrn(), e);
}
cdocument = null; // this is probably done by finalize
+
+ try {
+ _session.unlockVamsasDocument();
+ evgen.enableDocumentWatch();
+ } catch (IOException e) {
+ log.warn("IO Problems when releasing lock on session document!",e);
+ _session.slog.error("IO problems when attempting to release lock on session document.");
+ }
}
/*