Skip to content

Commit

Permalink
feat(plc4j/codegen): re-add exception handling for expressionless opt…
Browse files Browse the repository at this point in the history
…ional field
  • Loading branch information
sruehl authored and chrisdutz committed Nov 17, 2021
1 parent bbc5f24 commit 346d4ab
Showing 1 changed file with 12 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -442,8 +442,14 @@ public class ${type.name}IO implements <#if outputFlavor != "passive">MessageIO<
<#assign optionalField = field.asOptionalField().orElseThrow()>

// Optional Field (${optionalField.name}) (Can be skipped, if a given expression evaluates to false)
<#if !optionalField.conditionExpression.present>
<#-- TODO: we need to initalize base types-->
${helper.getLanguageTypeNameForField(simpleField)} ${simpleField.name} = null;
curPos = readBuffer.getPos();
try {
</#if>
<#if optionalField.conditionExpression.present && optionalField.conditionExpression.get().contains("curPos")>
curPos = readBuffer.getPos() - startPos;
curPos = readBuffer.getPos();
</#if>
${helper.getLanguageTypeNameForField(field)} ${optionalField.name} = null;
<#if optionalField.conditionExpression.present>
Expand Down Expand Up @@ -493,6 +499,11 @@ public class ${type.name}IO implements <#if outputFlavor != "passive">MessageIO<
<#if optionalField.conditionExpression.present>
}
</#if>
<#if !optionalField.conditionExpression.present>
} catch(ParseAssertException ignore){
readBuffer.reset(curPos);
}
</#if>
<#break>
<#case "assert">
<#assign assertField = field.asAssertField().orElseThrow()>
Expand Down

0 comments on commit 346d4ab

Please sign in to comment.