fix null string comparisons
Ole Streicher
2 years ago
0 | From: "Konstantin L. Metlov" <metlov@fti.dn.ua> | |
1 | Date: Tue, 4 Jan 2022 16:02:07 +0000 | |
2 | Subject: fix null string comparisons | |
3 | ||
4 | http://svn.savannah.gnu.org/viewvc/jel?view=revision&revision=186 | |
5 | --- | |
6 | source/src/java/gnu/jel/CompiledExpression.java | 2 ++ | |
7 | source/src/tests/gnu/jel/IntegralStaticTest.java | 19 +++++++++++++++++++ | |
8 | 2 files changed, 21 insertions(+) | |
9 | ||
10 | diff --git a/source/src/java/gnu/jel/CompiledExpression.java b/source/src/java/gnu/jel/CompiledExpression.java | |
11 | index 537bab8..96e36c1 100644 | |
12 | --- a/source/src/java/gnu/jel/CompiledExpression.java | |
13 | +++ b/source/src/java/gnu/jel/CompiledExpression.java | |
14 | @@ -347,6 +347,8 @@ public abstract class CompiledExpression { | |
15 | private static java.text.Collator collator=null; | |
16 | ||
17 | public static int compare(String s1,String s2) { | |
18 | + if (s1==s2) return 0; | |
19 | + if ((s1==null) || (s2==null)) return s1==null?-1:1; | |
20 | if (collator==null) | |
21 | collator = java.text.Collator.getInstance(); | |
22 | return collator.compare(s1,s2); | |
23 | diff --git a/source/src/tests/gnu/jel/IntegralStaticTest.java b/source/src/tests/gnu/jel/IntegralStaticTest.java | |
24 | index 9e6a73a..653a951 100644 | |
25 | --- a/source/src/tests/gnu/jel/IntegralStaticTest.java | |
26 | +++ b/source/src/tests/gnu/jel/IntegralStaticTest.java | |
27 | @@ -398,5 +398,24 @@ public class IntegralStaticTest extends TestingUtils { | |
28 | simExpression("nullString",null,null,null,lib,null); | |
29 | } | |
30 | ||
31 | + public void testExpr70() throws Throwable { | |
32 | + simExpression("nullString==\"aaa\"",Boolean.FALSE, | |
33 | + null,null,lib,null); | |
34 | + } | |
35 | + | |
36 | + public void testExpr71() throws Throwable { | |
37 | + simExpression("nullString>\"aaa\"",Boolean.FALSE, | |
38 | + null,null,lib,null); | |
39 | + } | |
40 | + | |
41 | + public void testExpr72() throws Throwable { | |
42 | + simExpression("nullString<\"aaa\"",Boolean.TRUE, | |
43 | + null,null,lib,null); | |
44 | + } | |
45 | + | |
46 | + public void testExpr73() throws Throwable { | |
47 | + simExpression("\"aaa\"<nullString",Boolean.FALSE, | |
48 | + null,null,lib,null); | |
49 | + } | |
50 | ||
51 | }; |