issue5432: avoid of serialization exception for javax.validation.ConstraintViolationException (#5672)
diff --git a/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/filter/ValidationFilter.java b/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/filter/ValidationFilter.java
index d2f0539..774b1de 100644
--- a/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/filter/ValidationFilter.java
+++ b/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/filter/ValidationFilter.java
@@ -27,6 +27,8 @@
import org.apache.dubbo.validation.Validation;
import org.apache.dubbo.validation.Validator;
+import javax.validation.ValidationException;
+
import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER;
import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER;
import static org.apache.dubbo.common.constants.FilterConstants.VALIDATION_KEY;
@@ -89,6 +91,9 @@
}
} catch (RpcException e) {
throw e;
+ } catch (ValidationException e) {
+ // only use exception's message to avoid potential serialization issue
+ return AsyncRpcResult.newDefaultAsyncResult(new ValidationException(e.getMessage()), invocation);
} catch (Throwable t) {
return AsyncRpcResult.newDefaultAsyncResult(t, invocation);
}