You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2020/01/17 06:35:12 UTC

[dubbo] branch master updated: issue5432: avoid of serialization exception for javax.validation.ConstraintViolationException (#5672)

This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/master by this push:
     new 0f99cb6  issue5432: avoid of serialization exception for javax.validation.ConstraintViolationException (#5672)
0f99cb6 is described below

commit 0f99cb65c3f2d679be9452747ff2833faff4df5f
Author: Ian Luo <ia...@gmail.com>
AuthorDate: Fri Jan 17 14:34:56 2020 +0800

    issue5432: avoid of serialization exception for javax.validation.ConstraintViolationException (#5672)
---
 .../java/org/apache/dubbo/validation/filter/ValidationFilter.java    | 5 +++++
 1 file changed, 5 insertions(+)

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.rpc.RpcException;
 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 @@ public class ValidationFilter implements Filter {
                 }
             } 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);
             }