Browse Source

Check timeZone() argument in AbstractSqlQueryRequest (#31822)

A value of `null` will throw an IAE.
hanbj 7 years ago
parent
commit
03adbf2a39

+ 1 - 1
x-pack/plugin/sql/sql-action/src/main/java/org/elasticsearch/xpack/sql/action/AbstractSqlQueryRequest.java

@@ -112,7 +112,7 @@ public abstract class AbstractSqlQueryRequest extends AbstractSqlRequest impleme
     }
     }
 
 
     public AbstractSqlQueryRequest timeZone(TimeZone timeZone) {
     public AbstractSqlQueryRequest timeZone(TimeZone timeZone) {
-        if (query == null) {
+        if (timeZone == null) {
             throw new IllegalArgumentException("time zone may not be null.");
             throw new IllegalArgumentException("time zone may not be null.");
         }
         }
         this.timeZone = timeZone;
         this.timeZone = timeZone;

+ 6 - 0
x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlQueryRequestTests.java

@@ -110,4 +110,10 @@ public class SqlQueryRequestTests extends AbstractSerializingTestCase<SqlQueryRe
         mutator.accept(newRequest);
         mutator.accept(newRequest);
         return newRequest;
         return newRequest;
     }
     }
+
+    public void testTimeZoneNullException() {
+        final SqlQueryRequest sqlQueryRequest = createTestInstance();
+        IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> sqlQueryRequest.timeZone(null));
+        assertEquals("time zone may not be null.", e.getMessage());
+    }
 }
 }