r843 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service
Author: tchemit Date: 2013-04-21 17:07:10 +0200 (Sun, 21 Apr 2013) New Revision: 843 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/843 Log: fixes #2320: Si on change de base alors il cherche encore les donn?\195?\169es anciennes Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java 2013-04-21 14:40:42 UTC (rev 842) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java 2013-04-21 15:07:10 UTC (rev 843) @@ -197,55 +197,76 @@ public void checkDbContext() { + String saneProtocolId = null; + String saneProgramId = null; + String saneCruiseId = null; + + String oldProtocolId = getProtocolId(); + String oldProgramId = getProgramId(); + String oldCruiseId = getCruiseId(); + if (isProtocolFilled()) { - if (!service.isProtocolExist(getProtocolId())) { + if (!service.isProtocolExist(oldProtocolId)) { // not found in this db if (log.isWarnEnabled()) { - log.warn("Remove invalid protocolId: " + getProtocolId()); + log.warn("Remove invalid protocolId: " + oldProtocolId); } - setProtocolId(null); } else { if (log.isInfoEnabled()) { - log.info("protocolId valid: " + getProtocolId()); + log.info("protocolId valid: " + oldProtocolId); } - setProtocolId(getProtocolId()); + // can keep this id + saneProtocolId = oldProtocolId; } } if (isProgramFilled()) { - Program program = service.getProgram(getProgramId()); + + Program program = null; + + try { + program = service.getProgram(oldProgramId); + } catch (Exception e) { + // program does not exist + } if (program == null) { // not found in this db if (log.isWarnEnabled()) { - log.warn("Remove invalid programId: " + getProgramId()); + log.warn("Remove invalid programId: " + oldProgramId); } - setProgramId(null); - setCruiseId(null); - } else { if (log.isInfoEnabled()) { - log.info("ProgramId valid: " + getProgramId()); + log.info("ProgramId valid: " + oldProgramId); } - setProgramId(getProgramId()); + // can keep this id + saneProgramId = oldProgramId; + // test cruiseId if (isCruiseFilled()) { - Cruise cruise = service.getCruise(getCruiseId()); + Cruise cruise = null; + + try { + cruise = service.getCruise(oldCruiseId); + } catch (Exception e) { + // cruise does not exist + } + if (cruise != null && - !cruise.getProgram().getId().equals(getProgramId())) { + !cruise.getProgram().getId().equals(oldProgramId)) { // not matchin program, reset cruise id cruise = null; @@ -256,19 +277,36 @@ // not found in this db if (log.isWarnEnabled()) { - log.warn("Remove invalid cruiseId: " + getCruiseId()); + log.warn("Remove invalid cruiseId: " + oldCruiseId); } setCruiseId(null); } else { if (log.isInfoEnabled()) { - log.info("CruiseId valid: " + getCruiseId()); + log.info("CruiseId valid: " + oldCruiseId); } + + // can keep this id + saneCruiseId = oldCruiseId; } } } } + + boolean oldProtocolFilled = isProtocolFilled(); + boolean oldProgramFilled = isProgramFilled(); + boolean oldCruiseFilled = isCruiseFilled(); + this.programId = saneProgramId; + this.cruiseId = saneCruiseId; + this.protocolId = saneProtocolId; + + firePropertyChange(PROPERTY_PROGRAM_FILLED, oldProgramFilled, isProgramFilled()); + firePropertyChange(PROPERTY_PROTOCOL_FILLED, oldProtocolFilled, isProtocolFilled()); + firePropertyChange(PROPERTY_CRUISE__FILLED, oldCruiseFilled, isCruiseFilled()); + firePropertyChange(PROPERTY_PROGRAM_ID, oldProgramId, saneProgramId); + firePropertyChange(PROPERTY_PROTOCOL_ID, oldProtocolId, saneProtocolId); + firePropertyChange(PROPERTY_CRUISE_ID, oldCruiseId, saneCruiseId); } public String getProgramId() {
participants (1)
-
tchemit@users.forge.codelutin.com