From 2d184a6b13a8978999c5324e61d8664012d145b6 Mon Sep 17 00:00:00 2001 From: Ariel Backenroth Date: Mon, 22 Jan 2007 22:50:53 +0000 Subject: [PATCH] - not preventing save when generating a rendition fails. - only adding a rendition to the forminstancedata's rendition if rendering succeeds. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4897 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../java/org/alfresco/web/bean/wcm/AVMEditBean.java | 8 ++++---- .../web/bean/wcm/CreateWebContentWizard.java | 11 ++++++++++- .../web/forms/RenderingEngineTemplateImpl.java | 13 +++++++++---- .../alfresco/web/forms/XSLFORenderingEngine.java | 3 ++- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/source/java/org/alfresco/web/bean/wcm/AVMEditBean.java b/source/java/org/alfresco/web/bean/wcm/AVMEditBean.java index e869e016e4..23c890fe97 100644 --- a/source/java/org/alfresco/web/bean/wcm/AVMEditBean.java +++ b/source/java/org/alfresco/web/bean/wcm/AVMEditBean.java @@ -453,12 +453,12 @@ public class AVMEditBean { rendition.regenerate(fid); } - catch (Throwable t) + catch (Exception e) { - LOGGER.error("error regenerating " + rendition.getName() + - ": " + t.getMessage(), t); Utils.addErrorMessage("error regenerating " + rendition.getName() + - ": " + t.getMessage(), t); + " using " + rendition.getRenderingEngineTemplate().getName() + + ": " + e.getMessage(), + e); } } final NodeRef[] uploadedFiles = this.formProcessorSession.getUploadedFiles(); diff --git a/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java index 2d67570e12..5fdfd546c7 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java @@ -480,7 +480,16 @@ public class CreateWebContentWizard extends BaseContentWizard this.renditions = new LinkedList(); for (RenderingEngineTemplate ret : form.getRenderingEngineTemplates()) { - this.renditions.add(ret.render(this.formInstanceData)); + try + { + this.renditions.add(ret.render(this.formInstanceData)); + } + catch (Exception e) + { + Utils.addErrorMessage("Error generating rendition using " + ret.getName() + + ": " + e.getMessage(), + e); + } } } else diff --git a/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java b/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java index 627df2917d..f9d2473211 100644 --- a/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java +++ b/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java @@ -197,7 +197,8 @@ public class RenderingEngineTemplateImpl { final AVMService avmService = this.getServiceRegistry().getAVMService(); final String renditionAvmPath = this.getOutputPathForRendition(formInstanceData); - if (avmService.lookup(-1, renditionAvmPath) == null) + final boolean isRegenerate = avmService.lookup(-1, renditionAvmPath) != null; + if (!isRegenerate) { final String parentAVMPath = AVMNodeConverter.SplitBase(renditionAvmPath)[0]; AVMConstants.makeAllDirectories(parentAVMPath); @@ -205,6 +206,13 @@ public class RenderingEngineTemplateImpl AVMNodeConverter.SplitBase(renditionAvmPath)[1]); if (LOGGER.isDebugEnabled()) LOGGER.debug("Created file node for file: " + renditionAvmPath); + } + + final Rendition result = new RenditionImpl(AVMNodeConverter.ToNodeRef(-1, renditionAvmPath)); + this.render(formInstanceData, result); + + if (!isRegenerate) + { avmService.addAspect(renditionAvmPath, WCMAppModel.ASPECT_FORM_INSTANCE_DATA); avmService.addAspect(renditionAvmPath, ContentModel.ASPECT_TITLED); avmService.addAspect(renditionAvmPath, WCMAppModel.ASPECT_RENDITION); @@ -220,9 +228,6 @@ public class RenderingEngineTemplateImpl new PropertyValue(DataTypeDefinition.TEXT, (Serializable)renditions)); } - - final Rendition result = new RenditionImpl(AVMNodeConverter.ToNodeRef(-1, renditionAvmPath)); - this.render(formInstanceData, result); return result; } diff --git a/source/java/org/alfresco/web/forms/XSLFORenderingEngine.java b/source/java/org/alfresco/web/forms/XSLFORenderingEngine.java index 7d0ec6e410..144eeff77a 100644 --- a/source/java/org/alfresco/web/forms/XSLFORenderingEngine.java +++ b/source/java/org/alfresco/web/forms/XSLFORenderingEngine.java @@ -66,7 +66,8 @@ public class XSLFORenderingEngine MIME_TYPES.put(MimeConstants.MIME_SVG, MimeConstants.MIME_SVG); MIME_TYPES.put("image/svg", MimeConstants.MIME_SVG); - MIME_TYPES.put(MimeConstants.MIME_GIF, MimeConstants.MIME_GIF); + //looks like a dependency is missing - removing for now + //MIME_TYPES.put(MimeConstants.MIME_GIF, MimeConstants.MIME_GIF); MIME_TYPES.put(MimeConstants.MIME_PNG, MimeConstants.MIME_PNG); MIME_TYPES.put(MimeConstants.MIME_JPEG, MimeConstants.MIME_JPEG); MIME_TYPES.put(MimeConstants.MIME_TIFF, MimeConstants.MIME_TIFF);