[MGNLSTK-566] Invalid DMS-links cause RunTimeException in several paragraphs Created: 21/Jan/10  Updated: 23/Jan/13  Resolved: 08/Jul/10

Status: Closed
Project: Magnolia Standard Templating Kit (closed)
Component/s: paragraphs
Affects Version/s: 1.2.1
Fix Version/s: 1.3.2

Type: Bug Priority: Major
Reporter: Sebastian Frick Assignee: Ondrej Chytil
Resolution: Fixed Votes: 1
Labels: stk
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File bug.png    
Issue Links:
relation
is related to MGNLSTK-637 STKUtil does not return 'null' to fre... Closed
Template:
Patch included:
Yes
Acceptance criteria:
Empty

 Description   

Invalid links pointing to DMS (several paragraphs are affected, for instance change a dms-handle in stkExtrasExternalPage-paragraph manually) cause a RunTimeException in STKUtil.getAsset(Content content, String nodeDataName, String variationName). It's not possible to edit the paragraph afterwards.

StKUtil can be called in Freemarker-Templates directly, so there is no possiblity to catch this exception. There should be logged a WARN-message and returned null for this cases.

public static Asset getAsset(Content content, String nodeDataName, String variationName) {
Asset asset = null;
try

{ asset = getAssetVariation(DAMUtil.getAsset(content, nodeDataName), variationName); }

catch (AssetNotFoundException e)

{ log.warn("Asset not found.", e); }

catch (DAMException e)

{ log.warn("Can't create asset.", e); }

return asset;
}

Freemarker-Exception in detail:

get(image) failed on instance of info.magnolia.module.templatingkit.paragraphs.ExternalTeaserModel
The problematic instruction:
----------
==> assignment: imageLink=(model.image!).link! [on line 14, column 5 in templating-kit/paragraphs/teasers/externalPage.ftl]
----------

Java backtrace for programmers:
----------
freemarker.template.TemplateModelException: get(image) failed on instance of info.magnolia.module.templatingkit.paragraphs.ExternalTeaserModel
at freemarker.ext.beans.BeanModel.get(BeanModel.java:223)
at freemarker.core.Dot._getAsTemplateModel(Dot.java:76)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.DefaultToExpression._getAsTemplateModel(DefaultToExpression.java:100)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.ParentheticalExpression._getAsTemplateModel(ParentheticalExpression.java:75)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.Dot._getAsTemplateModel(Dot.java:74)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.DefaultToExpression._getAsTemplateModel(DefaultToExpression.java:100)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.Assignment.accept(Assignment.java:90)
at freemarker.core.Environment.visit(Environment.java:209)
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
at freemarker.core.Environment.visit(Environment.java:209)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit


Generated at Mon Feb 12 07:28:16 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.