Skip to content

Commit

Permalink
fix(engine): support missing decision io names
Browse files Browse the repository at this point in the history
The decision engine can evaluate decisions where the inputs and outputs
of a decision table don't have names (or labels). In that case the name
property is null. We can't write null in records, instead we should
write an empty string "".

See #8909
  • Loading branch information
korthout committed Mar 21, 2022
1 parent 429b7d5 commit 45b47c7
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -290,12 +290,16 @@ private void addDecisionToEvaluationEvent(

private void addInputToEvaluationEvent(
final EvaluatedInput evaluatedInput, final EvaluatedDecisionRecord evaluatedDecisionRecord) {
evaluatedDecisionRecord
.evaluatedInputs()
.add()
.setInputId(evaluatedInput.inputId())
.setInputName(evaluatedInput.inputName())
.setInputValue(evaluatedInput.inputValue());
final var inputRecord =
evaluatedDecisionRecord
.evaluatedInputs()
.add()
.setInputId(evaluatedInput.inputId())
.setInputValue(evaluatedInput.inputValue());

if (evaluatedInput.inputName() != null) {
inputRecord.setInputName(evaluatedInput.inputName());
}
}

private void addMatchedRuleToEvaluationEvent(
Expand All @@ -311,12 +315,16 @@ private void addMatchedRuleToEvaluationEvent(

private void addOutputToEvaluationEvent(
final EvaluatedOutput evaluatedOutput, final MatchedRuleRecord matchedRuleRecord) {
matchedRuleRecord
.evaluatedOutputs()
.add()
.setOutputId(evaluatedOutput.outputId())
.setOutputName(evaluatedOutput.outputName())
.setOutputValue(evaluatedOutput.outputValue());
final var outputRecord =
matchedRuleRecord
.evaluatedOutputs()
.add()
.setOutputId(evaluatedOutput.outputId())
.setOutputValue(evaluatedOutput.outputValue());

if (evaluatedOutput.outputName() != null) {
outputRecord.setOutputName(evaluatedOutput.outputName());
}
}

private record DecisionInfo(long key, int version) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
public final class EvaluatedInputRecord extends UnifiedRecordValue implements EvaluatedInputValue {

private final StringProperty inputIdProp = new StringProperty("inputId");
private final StringProperty inputNameProp = new StringProperty("inputName");
private final StringProperty inputNameProp = new StringProperty("inputName", "");
private final BinaryProperty inputValueProp = new BinaryProperty("inputValue");

public EvaluatedInputRecord() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public final class EvaluatedOutputRecord extends UnifiedRecordValue
implements EvaluatedOutputValue {

private final StringProperty outputIdProp = new StringProperty("outputId");
private final StringProperty outputNameProp = new StringProperty("outputName");
private final StringProperty outputNameProp = new StringProperty("outputName", "");
private final BinaryProperty outputValueProp = new BinaryProperty("outputValue");

public EvaluatedOutputRecord() {
Expand Down

0 comments on commit 45b47c7

Please sign in to comment.