From f17fd30824f5ac73494de5533b482b00c869d450 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Wed, 7 Mar 2007 15:14:46 +0000 Subject: [PATCH] Merge V2.0 to HEAD 5234: LicenseService shutdown 5256: AR-1273 workaround 5289: AWC-1142 5294: WCM-360 5296: Potential NPE in patches dao git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5333 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../_pg_keypositions-function.sql | 15 +++++++++++++++ .../hibernate/HibernatePatchDaoServiceImpl.java | 3 ++- .../repo/descriptor/DescriptorServiceImpl.java | 8 ++++++++ .../repo/template/FreeMarkerProcessor.java | 4 ++++ .../alfresco/service/license/LicenseService.java | 5 +++++ 5 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql diff --git a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql b/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql new file mode 100644 index 0000000000..0587b3e6d9 --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql @@ -0,0 +1,15 @@ +/* + * Solution to PostgreSQL issue: + * function information_schema._pg_keypositions() does not exist + * Taken from: http://archives.postgresql.org/pgsql-general/2005-12/msg00060.php + * Author: Jason Long + * Tested against PostgreSQL 8.2 + * First seen during upgrade testing of PostgreSQL from Alfresco 1.4.3 to 2.0 + */ +SET search_path TO information_schema, public; +CREATE FUNCTION _pg_keypositions() RETURNS SETOF integer + LANGUAGE sql + IMMUTABLE + AS 'select g.s + from generate_series(1,current_setting(''max_index_keys'')::int,1) + as g(s)'; \ No newline at end of file diff --git a/source/java/org/alfresco/repo/admin/patch/hibernate/HibernatePatchDaoServiceImpl.java b/source/java/org/alfresco/repo/admin/patch/hibernate/HibernatePatchDaoServiceImpl.java index 13e2f468fc..97dad35b22 100644 --- a/source/java/org/alfresco/repo/admin/patch/hibernate/HibernatePatchDaoServiceImpl.java +++ b/source/java/org/alfresco/repo/admin/patch/hibernate/HibernatePatchDaoServiceImpl.java @@ -118,7 +118,8 @@ public class HibernatePatchDaoServiceImpl extends HibernateDaoSupport implements { AppliedPatch appliedPatch = iterator.next(); Date appliedOnDate = appliedPatch.getAppliedOnDate(); - if (appliedOnDate != null && fromDate.compareTo(appliedOnDate) >= 0 || toDate.compareTo(appliedOnDate) <= 0) + if (appliedOnDate != null && + (fromDate.compareTo(appliedOnDate) >= 0 || toDate.compareTo(appliedOnDate) <= 0)) { // it is out of range iterator.remove(); diff --git a/source/java/org/alfresco/repo/descriptor/DescriptorServiceImpl.java b/source/java/org/alfresco/repo/descriptor/DescriptorServiceImpl.java index 8ea03282da..bea020b458 100644 --- a/source/java/org/alfresco/repo/descriptor/DescriptorServiceImpl.java +++ b/source/java/org/alfresco/repo/descriptor/DescriptorServiceImpl.java @@ -185,6 +185,10 @@ public class DescriptorServiceImpl extends AbstractLifecycleBean implements Desc @Override protected void onShutdown(ApplicationEvent event) { + if (this.licenseService != null) + { + this.licenseService.shutdown(); + } } /** @@ -396,6 +400,10 @@ public class DescriptorServiceImpl extends AbstractLifecycleBean implements Desc { return null; } + + public void shutdown() + { + } } /** diff --git a/source/java/org/alfresco/repo/template/FreeMarkerProcessor.java b/source/java/org/alfresco/repo/template/FreeMarkerProcessor.java index 726ba4703e..f626753ff0 100644 --- a/source/java/org/alfresco/repo/template/FreeMarkerProcessor.java +++ b/source/java/org/alfresco/repo/template/FreeMarkerProcessor.java @@ -132,6 +132,10 @@ public class FreeMarkerProcessor implements TemplateProcessor // rethrow any exception so we can deal with them config.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); + // localized template lookups off by default - as they create strange noderef lookups + // such as workspace://SpacesStore/01234_en_GB - causes problems for ns.exists() on DB2 + config.setLocalizedLookup(false); + // set default template encoding if (defaultEncoding != null) { diff --git a/source/java/org/alfresco/service/license/LicenseService.java b/source/java/org/alfresco/service/license/LicenseService.java index 40541ba202..b75ea0d7d5 100644 --- a/source/java/org/alfresco/service/license/LicenseService.java +++ b/source/java/org/alfresco/service/license/LicenseService.java @@ -54,4 +54,9 @@ public interface LicenseService @NotAuditable public LicenseDescriptor getLicense() throws LicenseException; + /** + * Informs the service it is being shutdown + */ + @NotAuditable + public void shutdown(); }