From: <den...@us...> - 2011-03-23 23:57:30
|
Revision: 5131 http://jaffa.svn.sourceforge.net/jaffa/?rev=5131&view=rev Author: dennisl-jaffa Date: 2011-03-23 23:57:24 +0000 (Wed, 23 Mar 2011) Log Message: ----------- Bug: 17601 - Modified form caching so that it not only compares the FormDefinition.lastChangedOn date/time but also the FormDefinition.lastCreatedOn date/time with the modified date of the current cached form, in order to determine if the cached version or the form template stored in the database should be used. This is needed so that forms that are deleted from the database and reloaded with only a createdOn date/time will trigger a reload of the cached form. Modified Paths: -------------- branches/JAFFA_5_8_RELEASE/JaffaComponentsPrinting/source/java/org/jaffa/modules/printing/services/FormCache.java Modified: branches/JAFFA_5_8_RELEASE/JaffaComponentsPrinting/source/java/org/jaffa/modules/printing/services/FormCache.java =================================================================== --- branches/JAFFA_5_8_RELEASE/JaffaComponentsPrinting/source/java/org/jaffa/modules/printing/services/FormCache.java 2011-03-23 23:56:48 UTC (rev 5130) +++ branches/JAFFA_5_8_RELEASE/JaffaComponentsPrinting/source/java/org/jaffa/modules/printing/services/FormCache.java 2011-03-23 23:57:24 UTC (rev 5131) @@ -100,24 +100,25 @@ File temp = new File(getTemplatePath(), form.getFormId() + extn); // See if a cached version can be returned - if(temp.exists() && (form.getLastChangedOn()==null || - temp.lastModified()>form.getLastChangedOn().timeInMillis()) ) { + if (temp.exists() + && ((form.getLastChangedOn() == null && form.getCreatedOn() != null && temp.lastModified() > form.getCreatedOn().timeInMillis()) + || (form.getLastChangedOn() != null && temp.lastModified() > form.getLastChangedOn().timeInMillis()))) { + // If this is itext, make sure the CSV file is also current + if (FormPrintFactory.ENGINE_TYPE_ITEXT.equals(engineType)) { + File tempCsv = new File(getTemplatePath(), form.getFormId() + extn + ".csv"); + // See if a cached version can be returned + if (tempCsv.exists() + && ((form.getLastChangedOn() == null && form.getCreatedOn() != null && tempCsv.lastModified() > form.getCreatedOn().timeInMillis()) + || (form.getLastChangedOn() != null && tempCsv.lastModified() > form.getLastChangedOn().timeInMillis()))) { + log.debug("Use Cached Template/CSV :" + temp.getAbsolutePath()); + return temp.getAbsolutePath(); + } + } else { + log.debug("Use Cached Template :" + temp.getAbsolutePath()); + return temp.getAbsolutePath(); + } + } - // If this is itext, make sure the CSV file is also current - if(FormPrintFactory.ENGINE_TYPE_ITEXT.equals(engineType)) { - File tempCsv = new File(getTemplatePath(), form.getFormId() + extn + ".csv"); - // See if a cached version can be returned - if(tempCsv.exists() && (form.getLastChangedOn()==null || - tempCsv.lastModified()>form.getLastChangedOn().timeInMillis()) ) { - log.debug("Use Cached Template/CSV :" + temp.getAbsolutePath()); - return temp.getAbsolutePath(); - } - } else { - log.debug("Use Cached Template :" + temp.getAbsolutePath()); - return temp.getAbsolutePath(); - } - } - // Extract this from the Database FormTemplate formTemp = form.getFormTemplateObject(); if(formTemp==null) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |