From 229411100dabcf1536a5c5036f6c35f613a8fe5b Mon Sep 17 00:00:00 2001 From: tarilabs Date: Fri, 24 Feb 2017 22:56:47 +0100 Subject: [PATCH] DROOLS-1447 Fix FEELParser.isVariableNameValid() for empty string (#42) --- .../dmn/feel/parser/feel11/FEELParser.java | 2 +- .../org/kie/dmn/validation/ValidatorTest.java | 14 ++++++++++ .../org/kie/dmn/validation/DROOLS-1447.dmn | 28 +++++++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 kie-dmn/kie-dmn-validation/src/test/resources/org/kie/dmn/validation/DROOLS-1447.dmn diff --git a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/FEELParser.java b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/FEELParser.java index e77f92d..c5d9d6f 100644 --- a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/FEELParser.java +++ b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/FEELParser.java @@ -45,7 +45,7 @@ public static FEEL_1_1Parser parse(FEELEventListenersManager eventsManager, Stri } public static boolean isVariableNameValid( String source ) { - if( source == null ) { + if( source == null || source.isEmpty() ) { return false; } ANTLRInputStream input = new ANTLRInputStream(source); diff --git a/kie-dmn/kie-dmn-validation/src/test/java/org/kie/dmn/validation/ValidatorTest.java b/kie-dmn/kie-dmn-validation/src/test/java/org/kie/dmn/validation/ValidatorTest.java index 6f81e76..2486894 100644 --- a/kie-dmn/kie-dmn-validation/src/test/java/org/kie/dmn/validation/ValidatorTest.java +++ b/kie-dmn/kie-dmn-validation/src/test/java/org/kie/dmn/validation/ValidatorTest.java @@ -36,6 +36,7 @@ import org.kie.dmn.core.util.DMNRuntimeUtil; import org.kie.dmn.feel.model.v1_1.DMNModelInstrumentedBase; import org.kie.dmn.feel.model.v1_1.Definitions; +import org.kie.dmn.feel.parser.feel11.FEELParser; import org.kie.dmn.validation.Msg; import org.kie.dmn.validation.ValidationMsg; import org.kie.dmn.validation.DMNValidator; @@ -378,4 +379,17 @@ public void testTYPEREF_NOT_FEEL_NOT_DEF_valid() { assertTrue( validate.stream().noneMatch( p -> p.getMessage().equals( Msg.TYPEREF_NOT_FEEL_NOT_DEF ) ) ); } + + @Test + public void testNAME_INVALID_empty_name() { + assertFalse( FEELParser.isVariableNameValid(null) ); + + // DROOLS-1447 + assertFalse( FEELParser.isVariableNameValid("") ); + + Definitions definitions = utilDefinitions( "DROOLS-1447.dmn", "DROOLS-1447" ); + List validate = validator.validateModel(definitions); + + assertTrue( validate.stream().anyMatch( p -> p.getMessage().equals( Msg.NAME_INVALID ) ) ); + } } diff --git a/kie-dmn/kie-dmn-validation/src/test/resources/org/kie/dmn/validation/DROOLS-1447.dmn b/kie-dmn/kie-dmn-validation/src/test/resources/org/kie/dmn/validation/DROOLS-1447.dmn new file mode 100644 index 0000000..1509352 --- /dev/null +++ b/kie-dmn/kie-dmn-validation/src/test/resources/org/kie/dmn/validation/DROOLS-1447.dmn @@ -0,0 +1,28 @@ + + + + + + + + + + +