diff --git a/source/java/org/alfresco/linkvalidation/LinkValidationServiceBootstrap.java b/source/java/org/alfresco/linkvalidation/LinkValidationServiceBootstrap.java index 63b0bd26a7..6589d0037a 100644 --- a/source/java/org/alfresco/linkvalidation/LinkValidationServiceBootstrap.java +++ b/source/java/org/alfresco/linkvalidation/LinkValidationServiceBootstrap.java @@ -26,11 +26,10 @@ *----------------------------------------------------------------------------*/ package org.alfresco.linkvalidation; -import org.alfresco.util.AbstractLifecycleBean; -import org.springframework.context.ApplicationEvent; -import org.springframework.context.ApplicationContext; -import org.alfresco.service.cmr.avm.AVMNotFoundException; import org.alfresco.repo.avm.util.RawServices; +import org.alfresco.util.AbstractLifecycleBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationEvent; /** * Bootstrap for LinkValidationService @@ -39,10 +38,6 @@ public class LinkValidationServiceBootstrap extends AbstractLifecycleBean { private LinkValidationService linkValidationService_; - - /* (non-Javadoc) - * @see org.alfresco.util.AbstractLifecycleBean#onBootstrap(org.springframework.context.ApplicationEvent) - */ @Override protected void onBootstrap(ApplicationEvent event) { @@ -53,9 +48,6 @@ public class LinkValidationServiceBootstrap extends AbstractLifecycleBean linkValidationService_.onBootstrap(); } - /* (non-Javadoc) - * @see org.alfresco.util.AbstractLifecycleBean#onShutdown(org.springframework.context.ApplicationEvent) - */ @Override protected void onShutdown(ApplicationEvent event) { diff --git a/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformer.java b/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformer.java index a169f18a8e..dfd36ef5ba 100644 --- a/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformer.java +++ b/source/java/org/alfresco/repo/content/transform/OpenOfficeContentTransformer.java @@ -34,6 +34,7 @@ import net.sf.jooreports.converter.DocumentFormatRegistry; import net.sf.jooreports.converter.XmlDocumentFormatRegistry; import net.sf.jooreports.openoffice.connection.OpenOfficeConnection; import net.sf.jooreports.openoffice.connection.OpenOfficeException; +import net.sf.jooreports.openoffice.converter.AbstractOpenOfficeDocumentConverter; import net.sf.jooreports.openoffice.converter.OpenOfficeDocumentConverter; import org.alfresco.error.AlfrescoRuntimeException; @@ -56,7 +57,7 @@ import org.springframework.core.io.DefaultResourceLoader; public class OpenOfficeContentTransformer extends AbstractContentTransformer2 { private OpenOfficeConnection connection; - private OpenOfficeDocumentConverter converter; + private AbstractOpenOfficeDocumentConverter converter; private String documentFormatsConfiguration; private DocumentFormatRegistry formatRegistry; @@ -64,11 +65,27 @@ public class OpenOfficeContentTransformer extends AbstractContentTransformer2 { } + /** + * @param connection the connection that the converter uses + */ public void setConnection(OpenOfficeConnection connection) { this.connection = connection; } - + + /** + * Explicitly set the converter to be used. The converter must use the same connection + * set in {@link #setConnection(OpenOfficeConnection)}. + *
+ * If not set, then the OpenOfficeDocumentConverter
will be used.
+ *
+ * @param converter the converter to use.
+ */
+ public void setConverter(AbstractOpenOfficeDocumentConverter converter)
+ {
+ this.converter = converter;
+ }
+
/**
* Set a non-default location from which to load the document format mappings.
*
@@ -110,7 +127,10 @@ public class OpenOfficeContentTransformer extends AbstractContentTransformer2
}
// set up the converter
- converter = new OpenOfficeDocumentConverter(connection);
+ if (converter == null)
+ {
+ converter = new OpenOfficeDocumentConverter(connection);
+ }
// Register
super.register();
diff --git a/source/java/org/alfresco/repo/transaction/TransactionServiceImpl.java b/source/java/org/alfresco/repo/transaction/TransactionServiceImpl.java
index a41bbe7841..12c7a54c1c 100644
--- a/source/java/org/alfresco/repo/transaction/TransactionServiceImpl.java
+++ b/source/java/org/alfresco/repo/transaction/TransactionServiceImpl.java
@@ -28,6 +28,7 @@ import javax.transaction.UserTransaction;
import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.service.transaction.TransactionService;
+import org.alfresco.util.VmShutdownListener;
import org.alfresco.util.transaction.SpringAwareUserTransaction;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
@@ -41,6 +42,8 @@ import org.springframework.transaction.TransactionDefinition;
*/
public class TransactionServiceImpl implements TransactionService
{
+ private static VmShutdownListener shutdownListener = new VmShutdownListener("TransactionService");
+
private PlatformTransactionManager transactionManager;
private int maxRetries = -1;
private int minRetryWaitMs = -1;
@@ -79,8 +82,20 @@ public class TransactionServiceImpl implements TransactionService
public boolean isReadOnly()
{
- Boolean allowWrite = (Boolean)sysAdminCache.get(KEY_SYSADMIN_ALLOW_WRITE);
- return (allowWrite == null ? false : ! allowWrite);
+ if (shutdownListener.isVmShuttingDown())
+ {
+ return true;
+ }
+ try
+ {
+ Boolean allowWrite = (Boolean)sysAdminCache.get(KEY_SYSADMIN_ALLOW_WRITE);
+ return (allowWrite == null ? false : ! allowWrite);
+ }
+ catch (IllegalStateException e)
+ {
+ // The cache is not working
+ return true;
+ }
}
/**