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);

             }