Author: nrannou Date: 2009-08-18 14:22:46 +0200 (Tue, 18 Aug 2009) New Revision: 2731 Modified: trunk/README.txt trunk/pollen-business/src/main/java/org/chorem/pollen/business/business/PreventRuleManager.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/EnumController.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/MailUtil.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Image.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/FeedUtil.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/ImageUtil.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/LDAPAccountUtil.java trunk/pollen-ui/src/main/resources/pollen.properties trunk/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/Context.java trunk/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/services/ServiceExportImpl.java Log: correction votant null et migration d'une nouvelle base Modified: trunk/README.txt =================================================================== --- trunk/README.txt 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/README.txt 2009-08-18 12:22:46 UTC (rev 2731) @@ -18,7 +18,6 @@ /etc/pollen.properties et de le remplir avec les propriétés suivantes : # Configuration de la base de données - hibernate.hbm2ddl.auto=update hibernate.show_sql=false hibernate.dialect=org.hibernate.dialect.H2Dialect hibernate.connection.username=username Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/business/PreventRuleManager.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/business/PreventRuleManager.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/business/PreventRuleManager.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -125,7 +125,8 @@ return false; } } catch (Exception e) { - e.printStackTrace(); + log.error("Erreur lors de l'appel de la méthode " + + preventRule.getMethod(), e); return false; } return true; Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/EnumController.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/EnumController.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/EnumController.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -22,6 +22,7 @@ import org.chorem.pollen.business.persistence.PollenModelDAOHelper; import org.chorem.pollen.business.persistence.Result; import org.chorem.pollen.business.persistence.VoteCountingDAO; +import org.chorem.pollen.business.utils.ContextUtil; import org.chorem.pollen.common.ChoiceType; import org.chorem.pollen.common.PollType; import org.chorem.pollen.common.VoteCountingType; @@ -47,8 +48,8 @@ .getChoiceTypeDAO(transaction); ePoll.setChoiceType(dao.findByName(type.name())); } - } catch (TopiaException tex) { - tex.printStackTrace(); + } catch (TopiaException e) { + ContextUtil.doCatch(e, transaction); } } @@ -59,8 +60,8 @@ .getPollTypeDAO(transaction); ePoll.setPollType(dao.findByName(type.name())); } - } catch (TopiaException tex) { - tex.printStackTrace(); + } catch (TopiaException e) { + ContextUtil.doCatch(e, transaction); } } @@ -71,8 +72,8 @@ .getVoteCountingDAO(transaction); ePoll.setVoteCounting(dao.findByName(type.name())); } - } catch (TopiaException tex) { - tex.printStackTrace(); + } catch (TopiaException e) { + ContextUtil.doCatch(e, transaction); } } @@ -83,8 +84,8 @@ .getVoteCountingDAO(transaction); eResult.setVoteCounting(dao.findByName(type.name())); } - } catch (TopiaException tex) { - tex.printStackTrace(); + } catch (TopiaException e) { + ContextUtil.doCatch(e, transaction); } } Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -19,8 +19,11 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; +import java.util.Properties; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.business.utils.ContextUtil; import org.nuiton.topia.migration.DatabaseManager; import org.nuiton.topia.migration.callback.MigrationCallbackHandler; import org.nuiton.util.VersionUtil; @@ -56,7 +59,7 @@ conn.setAutoCommit(false); if (VersionUtil.valueOf(dbVersion).before( VersionUtil.valueOf("1.1"))) { - //migrateTo1_1_test(conn); + migrateTo1_1_test(conn); } conn.commit(); result = MigrationChoice.CUSTOM_MIGRATION; @@ -75,16 +78,41 @@ /** Migration de la version de test (0 to 1.1) */ private void migrateTo1_1_test(Connection conn) throws SQLException { log.info("Migrate to version 1_1_test"); + String[] sqls = null; - String[] sqls = new String[] { - "alter table useraccount rename langage to language;", - "alter table pollaccount add accountid varchar;", - "update pollaccount set accountid=md5(topiaid);", - "alter table persontolist drop column hasvoted;", - "alter table persontolist add hasvoted boolean default false;", - "alter table vote add anonymous boolean default false;", - "alter table preventrule add active boolean default true;", - "alter table preventrule add onetime boolean default false;", }; + // Récupération du dialect Hibernate + Properties conf = ContextUtil.getInstance().getConf(); + String dialect = conf.getProperty("hibernate.dialect"); + + // Script de migration + if ("org.hibernate.dialect.PostgreSQLDialect".equals(dialect)) { + sqls = new String[] { + "alter table useraccount rename langage to language;", + "alter table pollaccount add accountid varchar;", + "update pollaccount set accountid=md5(topiaid);", + "alter table persontolist drop column hasvoted;", + "alter table persontolist add hasvoted boolean default false;", + "alter table vote add anonymous boolean default false;", + "alter table preventrule add active boolean default true;", + "alter table preventrule add onetime boolean default false;", }; + } else if ("org.hibernate.dialect.H2Dialect".equals(dialect)) { + sqls = new String[] { + "alter table useraccount alter column langage rename to language;", + "alter table pollaccount add accountid varchar;", + "update pollaccount set accountid=call hash('sha256', topiaid, 1000);", + "alter table persontolist drop column hasvoted;", + "alter table persontolist add hasvoted boolean default false;", + "alter table vote add anonymous boolean default false;", + "alter table preventrule add active boolean default true;", + "alter table preventrule add onetime boolean default false;", }; + } else { + if (log.isErrorEnabled()) { + log.error("Migration non prise en charge pour ce type de dialect : " + + dialect); + } + } + + // Exécution de la migration for (String sql : sqls) { log.info("try " + sql); PreparedStatement sta = conn.prepareStatement(sql); Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -26,6 +26,7 @@ import org.chorem.pollen.business.persistence.UserAccount; import org.chorem.pollen.business.persistence.UserAccountDAO; import org.chorem.pollen.business.persistence.VoteCountingDAO; +import org.hibernate.exception.SQLGrammarException; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaContextFactory; import org.nuiton.topia.TopiaException; @@ -67,6 +68,15 @@ } /** + * Retourne la configuration de la base de données. + * + * @return la configuration + */ + public Properties getConf() { + return conf; + } + + /** * Construction du contexte global */ public void buildContext() { @@ -78,7 +88,7 @@ context = TopiaContextFactory.getContext(conf); } catch (TopiaNotFoundException e) { if (log.isErrorEnabled()) { - log.error("Erreur lors de la construction du contexte"); + log.error("Erreur lors de la construction du contexte", e); } e.printStackTrace(); } @@ -97,7 +107,7 @@ context.closeContext(); } catch (TopiaException e) { if (log.isErrorEnabled()) { - log.error("Erreur lors de la fermeture du contexte"); + log.error("Erreur lors de la fermeture du contexte", e); } e.printStackTrace(); } @@ -130,8 +140,23 @@ // Construction du contexte global buildContext(); - // Initialisation de la base de données - initDB(); + // Initialisation de la base de données. Si elle n'existe pas on la crée + // FIXME Il ne faudrait pas se baser sur l'exception SQLGrammarException pour détecter que la base n'existe pas + try { + initDB(); + } catch (TopiaException e) { + log.error("Base de données inexistante"); + if (e.getCause() instanceof SQLGrammarException) { + log.info("Création de la base de données..."); + try { + context.createSchema(); + log.info("Base de données créée"); + initDB(); + } catch (TopiaException ex) { + log.error("Échec lors de la création de la base", ex); + } + } + } } /** @@ -139,39 +164,35 @@ * * @throws TopiaException */ - protected void initDB() { + protected void initDB() throws TopiaException { TopiaContext transaction = null; - try { - transaction = context.beginTransaction(); + transaction = context.beginTransaction(); - // Chargement des types de choix dans la table choiceType - ChoiceTypeDAO choiceTypeDAO = PollenModelDAOHelper - .getChoiceTypeDAO(transaction); - loadDB("choiceType", choiceTypeDAO); - transaction.commitTransaction(); + // Chargement des types de choix dans la table choiceType + ChoiceTypeDAO choiceTypeDAO = PollenModelDAOHelper + .getChoiceTypeDAO(transaction); + loadDB("choiceType", choiceTypeDAO); + transaction.commitTransaction(); - // Chargement des types de sondage dans la table pollType - PollTypeDAO pollTypeDAO = PollenModelDAOHelper - .getPollTypeDAO(transaction); - loadDB("pollType", pollTypeDAO); - transaction.commitTransaction(); + // Chargement des types de sondage dans la table pollType + PollTypeDAO pollTypeDAO = PollenModelDAOHelper + .getPollTypeDAO(transaction); + loadDB("pollType", pollTypeDAO); + transaction.commitTransaction(); - // Chargement des types de dépouillement dans la table voteCounting - VoteCountingDAO voteCountingDAO = PollenModelDAOHelper - .getVoteCountingDAO(transaction); - loadDB("voteCounting", voteCountingDAO); - transaction.commitTransaction(); + // Chargement des types de dépouillement dans la table voteCounting + VoteCountingDAO voteCountingDAO = PollenModelDAOHelper + .getVoteCountingDAO(transaction); + loadDB("voteCounting", voteCountingDAO); + transaction.commitTransaction(); - // Chargement de l'utilisateur par défaut - UserAccountDAO userAccountDAO = PollenModelDAOHelper - .getUserAccountDAO(transaction); - loadAdmin(userAccountDAO); - transaction.commitTransaction(); + // Chargement de l'utilisateur par défaut + UserAccountDAO userAccountDAO = PollenModelDAOHelper + .getUserAccountDAO(transaction); + loadAdmin(userAccountDAO); + transaction.commitTransaction(); - transaction.closeContext(); - } catch (TopiaException e) { - doCatch(e, transaction); - } + transaction.closeContext(); } /** @@ -232,24 +253,23 @@ transaction.rollbackTransaction(); } catch (TopiaException ex) { if (log.isErrorEnabled()) { - log.error("Échec lors du rollback de la transaction : " - + ex.getMessage()); + log.error("Échec lors du rollback de la transaction", ex); } } finally { try { transaction.closeContext(); } catch (TopiaException ex) { if (log.isErrorEnabled()) { - log.error("Échec lors de la fermeture de la transaction : " - + ex.getMessage()); + log.error( + "Échec lors de la fermeture de la transaction", + ex); } } } } if (log.isErrorEnabled()) { - log.error("Échec lors du déroulement de la transaction : " - + e.getMessage()); + log.error("Échec lors du déroulement de la transaction", e); } } } \ No newline at end of file Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/MailUtil.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/MailUtil.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/MailUtil.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -55,7 +55,7 @@ email.setCharset("UTF-8"); email.send(); } catch (EmailException e) { - e.printStackTrace(); + log.error("Erreur à l'envoi d'email", e); } if (log.isInfoEnabled()) { Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -57,12 +57,11 @@ if (log.isDebugEnabled()) { log.debug("Propriétés: " + conf); } - } catch (Exception ex) { + } catch (Exception e) { if (log.isErrorEnabled()) { log.error("Lecture impossible du fichier de propriétés : " - + filename); + + filename, e); } - ex.printStackTrace(); } return conf; Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/FileLink.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -32,6 +32,7 @@ import org.apache.tapestry5.corelib.base.AbstractLink; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.services.Response; +import org.slf4j.Logger; /** * Composant qui affiche un lien vers un fichier dynamique. @@ -56,6 +57,9 @@ /** Type MIME du fichier */ @Parameter private String _type; + + @Inject + private Logger logger; @Inject private ComponentResources _resources; @@ -80,7 +84,7 @@ try { stream = new FileInputStream(file); } catch (FileNotFoundException e) { - e.printStackTrace(); + logger.error("Fichier inexistant : " + file.getAbsolutePath(), e); } if (!_resources.isBound("type")) { Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -30,6 +30,7 @@ import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.services.Response; +import org.slf4j.Logger; /** * Composant générant une balise d'entête Link à partir d'un fichier dynamique. @@ -56,6 +57,9 @@ @Parameter private String _title; + + @Inject + private Logger logger; @Inject private ComponentResources _resources; @@ -83,7 +87,7 @@ try { stream = new FileInputStream(file); } catch (FileNotFoundException e) { - e.printStackTrace(); + logger.error("Fichier inexistant : " + file.getAbsolutePath(), e); } return new FileStreamResponse(stream, type); Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Image.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Image.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Image.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -32,6 +32,7 @@ import org.apache.tapestry5.dom.Element; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.services.Response; +import org.slf4j.Logger; /** * Composant qui affiche une image. @@ -67,6 +68,9 @@ /** Hauteur de l'image */ @Parameter private int _height; + + @Inject + private Logger logger; @Inject private ComponentResources _resources; @@ -95,7 +99,7 @@ try { stream = new FileInputStream(file); } catch (FileNotFoundException e) { - e.printStackTrace(); + logger.error("Fichier inexistant : " + file.getAbsolutePath(), e); } MimetypesFileTypeMap mimes = new MimetypesFileTypeMap(); Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -50,7 +50,7 @@ } catch (Exception e) { if (log.isDebugEnabled()) { - log.debug("Exception capturée : " + e.getClass() + ": " + e.getMessage()); + log.debug("Exception capturée", e); } // si la connexion est fermée, reconnexion et affichage d'un message Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/VoteForPoll.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -209,8 +209,8 @@ /** Liste des choix */ private List<ChoiceDTO> voteChoices = new ArrayList<ChoiceDTO>(); - - /** Identifiant du compte correspondant à l'adresse forgée */ + + /** Identifiant du compte correspondant à l'adresse forgée */ private String pollAccountId; /** Compte du votant */ @@ -454,7 +454,8 @@ } // si le votant du vote correspond au votant actuel (pollAccountId) - if (pollAccountId.equals(account.getId())) { + if (pollAccountId != null + && pollAccountId.equals(account.getId())) { modifAllowed = true; } Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/FeedUtil.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/FeedUtil.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/FeedUtil.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -93,7 +93,7 @@ } } catch (Exception e) { if (log.isErrorEnabled()) { - log.error("Feed error: " + e.getMessage()); + log.error("Feed creation error", e); } e.printStackTrace(); } @@ -174,7 +174,7 @@ } } catch (Exception e) { if (log.isErrorEnabled()) { - log.error("Feed error: " + e.getMessage()); + log.error("Feed feeding error", e); } e.printStackTrace(); } Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/ImageUtil.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/ImageUtil.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/ImageUtil.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -116,7 +116,7 @@ try { ImageIO.write(thumbImage, "jpg", thumbCopied); } catch (IOException e) { - e.printStackTrace(); + log.error("Erreur à l'enregistrement de la miniature", e); } if (log.isDebugEnabled()) { log.debug("Thumbnail created: " + thumbCopied.getName() + " (size=" Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/LDAPAccountUtil.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/LDAPAccountUtil.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/utils/LDAPAccountUtil.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -110,8 +110,7 @@ } } } catch (javax.naming.NamingException e) { - log.error("Exception de nommage lors de l'import depuis LDAP : " - + e.getMessage()); + log.error("Exception de nommage lors de l'import depuis LDAP", e); } long duration = (System.nanoTime() - start) / 1000000000; Modified: trunk/pollen-ui/src/main/resources/pollen.properties =================================================================== --- trunk/pollen-ui/src/main/resources/pollen.properties 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-ui/src/main/resources/pollen.properties 2009-08-18 12:22:46 UTC (rev 2731) @@ -1,5 +1,5 @@ ## Configuration de la base de données -hibernate.hbm2ddl.auto=update +#hibernate.hbm2ddl.auto=update hibernate.show_sql=false hibernate.dialect=org.hibernate.dialect.H2Dialect hibernate.connection.username=sa Modified: trunk/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/Context.java =================================================================== --- trunk/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/Context.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/business/Context.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -19,6 +19,9 @@ import java.util.ArrayList; import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * Contexte du dépouillement du sondage (PATTERN STRATEGY). * @@ -26,6 +29,10 @@ * @version $Id$ */ public class Context { + + /** log. */ + private static final Log log = LogFactory.getLog(Context.class); + /** * Booléen permettant de savoir si la méthode doit calculer la valeur des * choix en fonction des groupes @@ -115,6 +122,7 @@ try { method.executeMethod(choices, groupCounting); } catch (Exception e) { + log.error("L'exécution du dépouillement a échoué", e); return false; } this.results.clear(); Modified: trunk/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/services/ServiceExportImpl.java =================================================================== --- trunk/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/services/ServiceExportImpl.java 2009-08-18 07:49:38 UTC (rev 2730) +++ trunk/pollen-votecounting/src/main/java/org/chorem/pollen/votecounting/services/ServiceExportImpl.java 2009-08-18 12:22:46 UTC (rev 2731) @@ -96,8 +96,7 @@ // Création d'un nouveau document JDOM avec le fichier XML en argument document = sxb.build(new File(filePath)); } catch (Exception e) { - log.error("Erreur lors de l'analyse du document : " + filePath - + ". " + e.getMessage()); + log.error("Erreur lors de l'analyse du document : " + filePath, e); } // Initialisation d'un nouvel élément racine @@ -364,7 +363,7 @@ sortie.output(document, new FileOutputStream(file)); } catch (java.io.IOException e) { log.error("Erreur lors de l'enregistrement du document : " - + filePath + ". " + e.getMessage()); + + filePath, e); } }