Merged V3.2 to HEAD

16823: ETHREEOH-3028 -  Multivalue property does not allow deploy
    16827: ETHREEOH-2678 - Unfriendly system error occurs when trying to view Workflows information on content Details page if workflow was canceled
    16832: ALFCOM-3021 - Replace 3.1 POI with version 3.5
    16927: 15614 - ETHREEOH-2273 - FSR Prepare callback exception messages

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16978 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Mark Rogers
2009-10-16 09:23:10 +00:00
parent f4e057c0af
commit 7df0bd8088
4 changed files with 41 additions and 12 deletions

View File

@@ -28,6 +28,9 @@ import java.util.List;
import org.alfresco.repo.processor.BaseProcessorExtension;
import org.alfresco.repo.template.BaseContentNode.TemplateContentData;
import org.alfresco.service.cmr.repository.ContentIOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import freemarker.ext.beans.BeanModel;
import freemarker.template.TemplateMethodModelEx;
@@ -43,6 +46,7 @@ import freemarker.template.TemplateNumberModel;
*/
public final class CropContentMethod extends BaseProcessorExtension implements TemplateMethodModelEx
{
private static final Log logger = LogFactory.getLog(CropContentMethod.class);
/**
* @see freemarker.template.TemplateMethodModel#exec(java.util.List)
*/
@@ -60,9 +64,23 @@ public final class CropContentMethod extends BaseProcessorExtension implements T
Object wrapped = ((BeanModel)arg0).getWrappedObject();
if (wrapped instanceof TemplateContentData)
{
int bytes = ((TemplateNumberModel)arg1).getAsNumber().intValue();
result = ((TemplateContentData)wrapped).getContentAsText(bytes);
int bytes = ((TemplateNumberModel)arg1).getAsNumber().intValue();
try
{
result = ((TemplateContentData)wrapped).getContentAsText(bytes);
}
catch (ContentIOException e)
{
logger.warn("unable to getContentAsText", e);
/*
* Unable to extract content - return empty text instead.
* Probably here through a transformation failure.
* This method is called from FreeMarker so throwing the
* exception causes problems.
*/
result = "";
}
}
}
}