You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ga...@apache.org on 2021/11/16 03:23:07 UTC
[flink-ml] branch master updated: [FLINK-24354][FLIP-174] Updates WithParams::set(...) to throw Exception if the given param is not defined on this instance
This is an automated email from the ASF dual-hosted git repository.
gaoyunhaii pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink-ml.git
The following commit(s) were added to refs/heads/master by this push:
new acf13c6 [FLINK-24354][FLIP-174] Updates WithParams::set(...) to throw Exception if the given param is not defined on this instance
acf13c6 is described below
commit acf13c6cf138545775cc8a1f1bf1c86f7adfcd51
Author: Dong Lin <li...@gmail.com>
AuthorDate: Mon Nov 15 16:25:29 2021 +0800
[FLINK-24354][FLIP-174] Updates WithParams::set(...) to throw Exception if the given param is not defined on this instance
This closes #35.
---
.../src/main/java/org/apache/flink/ml/param/WithParams.java | 8 ++++++++
.../test/java/org/apache/flink/ml/api/core/StageTest.java | 12 ++++++++++++
2 files changed, 20 insertions(+)
diff --git a/flink-ml-api/src/main/java/org/apache/flink/ml/param/WithParams.java b/flink-ml-api/src/main/java/org/apache/flink/ml/param/WithParams.java
index f631c8e..0a7b5c4 100644
--- a/flink-ml-api/src/main/java/org/apache/flink/ml/param/WithParams.java
+++ b/flink-ml-api/src/main/java/org/apache/flink/ml/param/WithParams.java
@@ -72,6 +72,14 @@ public interface WithParams<T> {
*/
@SuppressWarnings("unchecked")
default <V> T set(Param<V> param, V value) {
+ if (!getParamMap().containsKey(param)) {
+ throw new IllegalArgumentException(
+ "Parameter "
+ + param.name
+ + " is not defined on the class "
+ + getClass().getName());
+ }
+
if (value != null && !param.clazz.isAssignableFrom(value.getClass())) {
throw new ClassCastException(
"Parameter "
diff --git a/flink-ml-api/src/test/java/org/apache/flink/ml/api/core/StageTest.java b/flink-ml-api/src/test/java/org/apache/flink/ml/api/core/StageTest.java
index 9e03ddb..88b48b1 100644
--- a/flink-ml-api/src/test/java/org/apache/flink/ml/api/core/StageTest.java
+++ b/flink-ml-api/src/test/java/org/apache/flink/ml/api/core/StageTest.java
@@ -242,6 +242,18 @@ public class StageTest {
}
@Test
+ public void testSetUndefinedParam() {
+ MyStage stage = new MyStage();
+ Param<Integer> param = new IntParam("anotherIntParam", "Not defined on MyStage", 1);
+ try {
+ stage.set(param, 2);
+ Assert.fail("Expected IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ Assert.assertTrue(e.getMessage().contains(MyStage.class.getName()));
+ }
+ }
+
+ @Test
public void testParamSetInvalidValue() {
MyStage stage = new MyStage();
assertInvalidValue(stage, MyParams.INT_PARAM, 100);