Author: fdesbois Date: 2010-04-05 22:11:48 +0200 (Mon, 05 Apr 2010) New Revision: 1878 Log: Ano #463 : NPE on log debug in TopiaQuery Ano #464 : Migration problem with database created from scratch -> no migration needed on last version Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaQuery.java trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/ManualMigrationEngine.java trunk/topia-service-migration/src/main/resources/i18n/topia-service-migration-en_GB.properties trunk/topia-service-migration/src/main/resources/i18n/topia-service-migration-fr_FR.properties Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaQuery.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaQuery.java 2010-04-03 11:01:02 UTC (rev 1877) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaQuery.java 2010-04-05 20:11:48 UTC (rev 1878) @@ -943,7 +943,9 @@ String query = fullQuery(); if (log.isDebugEnabled()) { log.debug("# QUERY : " + query); - log.debug("# PARAMS : " + Arrays.toString(params.toArray())); + if (params != null) { + log.debug("# PARAMS : " + Arrays.toString(params.toArray())); + } } if (startIndex != null && endIndex != null) { return transaction.find(query, startIndex, endIndex, getParams().toArray()); Modified: trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/ManualMigrationEngine.java =================================================================== --- trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/ManualMigrationEngine.java 2010-04-03 11:01:02 UTC (rev 1877) +++ trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/ManualMigrationEngine.java 2010-04-05 20:11:48 UTC (rev 1878) @@ -117,6 +117,10 @@ */ protected Version dbVersion; /** + * Drapeau pour savoir si la base est versionnée ou non + */ + protected boolean dbNotVersioned; + /** * Un drapeau pour effectuer la migration au demarrage (initialise en pre-init) */ protected boolean migrateOnInit; @@ -337,12 +341,27 @@ // tell if migration is needed boolean bMigrationNeeded = false; + if (log.isDebugEnabled()) { + log.debug("Migrate schema start version = " + dbVersion + + " _ not versioned = " + dbNotVersioned + + " _ TMSVersion exists = " + versionTableExist); + } + if (versionTableExist && dbVersion.equals(applicationVersion)) { log.info(_("topia.migration.skip.migration.db.is.up.to.date")); // la base est a jour return true; } + // Aucune version existante, la base de données est vierge + if (versionTableExist && dbNotVersioned && migrateOnInit) { + log.info(_("topia.migration.skip.migration.db.is.empty")); + // la base est vierge, aucune migration nécessaire + // mise à jour de la table tmsversion + saveVersion(applicationVersion); + return true; + } + SortedSet<Version> allVersions = getVersions(); log.info(_("topia.migration.available.versions", allVersions)); @@ -401,6 +420,11 @@ public void saveVersion(Version version) { checkInit(); + if (log.isDebugEnabled()) { + log.debug("Save version = " + version + + " _ table exists = " + versionTableExist); + } + if (dbVersion == null) { detectDbVersion(); } @@ -526,6 +550,9 @@ // on detecte si la table de versionning existe versionTableExist = TopiaUtil.isSchemaExist(versionConfiguration, TMSVersionImpl.class.getName()); + if (log.isDebugEnabled()) { + log.debug("Table TMSVersion exist = " + versionTableExist); + } // recuperation de la version de la base Version v = null; try { @@ -554,6 +581,7 @@ // et les schema de cette version 0 doivent // etre detenu en local v = Version.VZERO; + dbNotVersioned = true; log.info(_("topia.migration.db.not.versionned")); } else { log.info(_("topia.migration.detected.db.version", v)); Modified: trunk/topia-service-migration/src/main/resources/i18n/topia-service-migration-en_GB.properties =================================================================== --- trunk/topia-service-migration/src/main/resources/i18n/topia-service-migration-en_GB.properties 2010-04-03 11:01:02 UTC (rev 1877) +++ trunk/topia-service-migration/src/main/resources/i18n/topia-service-migration-en_GB.properties 2010-04-05 20:11:48 UTC (rev 1878) @@ -5,6 +5,7 @@ topia.migration.migrate.versions=Versions to apply \: %1$s topia.migration.migration.incomplete=Database migration not succesfully ended \! topia.migration.saving.db.version=Saving new database version \: %1$s +topia.migration.skip.migration.db.is.empty=Database is empty, no migration needed. topia.migration.skip.migration.db.is.up.to.date=Database is up to date, no migration needed. topia.migration.skip.migration.no.version.to.apply=No version to apply, no migration needed. topia.migration.start.migrate=Start migration to version %1$s Modified: trunk/topia-service-migration/src/main/resources/i18n/topia-service-migration-fr_FR.properties =================================================================== --- trunk/topia-service-migration/src/main/resources/i18n/topia-service-migration-fr_FR.properties 2010-04-03 11:01:02 UTC (rev 1877) +++ trunk/topia-service-migration/src/main/resources/i18n/topia-service-migration-fr_FR.properties 2010-04-05 20:11:48 UTC (rev 1878) @@ -3,8 +3,9 @@ topia.migration.detected.db.version=Version de base d\u00E9tect\u00E9e \: %1$s topia.migration.end.sql=Requ\u00EAte [%1$-4s/%2$-4s] ex\u00E9cut\u00E9e en %3$s. topia.migration.migrate.versions=Mises \u00E0 jour \u00E0 installer \: %1$s -topia.migration.migration.incomplete=La migration de la base s'est mal d\u00E9roul\u00E9 ou a \u00E9t\u00E9 annul\u00E9e\! +topia.migration.migration.incomplete=La migration de la base s'est mal d\u00E9roul\u00E9e ou a \u00E9t\u00E9 annul\u00E9e\! topia.migration.saving.db.version=Sauvegarde de la nouvelle version de la base \: %1$s +topia.migration.skip.migration.db.is.empty=La base de donn\u00E9es est vierge, aucune migration n\u00E9cessaire. topia.migration.skip.migration.db.is.up.to.date=La base est \u00E0 jour, aucune migration n\u00E9cessaire. topia.migration.skip.migration.no.version.to.apply=Aucune version \u00E0 appliquer, aucune migration n\u00E9cessaire. topia.migration.start.migrate=D\u00E9marrage de la mise \u00E0 jour vers la version %1$s