You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by "tohidemyname (via GitHub)" <gi...@apache.org> on 2023/06/29 00:26:07 UTC

[GitHub] [dubbo] tohidemyname opened a new issue, #12613: MockClusterInvoker can ignore thrown exceptions

tohidemyname opened a new issue, #12613:
URL: https://github.com/apache/dubbo/issues/12613

   <!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->
   
   - [ ] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
   
   ### Environment
   
   * Dubbo version: master
   * Operating System version: windows 11
   * Java version: 20
   
   The code is as follows:
   
     public Result invoke(Invocation invocation) throws RpcException {
   
      ...
       if (value.length() == 0 || "false".equalsIgnoreCase(value)) {
               //no mock
               result = this.invoker.invoke(invocation);
           } else if (value.startsWith("force")) {
               if (logger.isWarnEnabled()) {
                   logger.warn("force-mock: " + invocation.getMethodName() + " force-mock enabled , url : " + getUrl());
               }
               //force:direct mock
               result = doMockInvoke(invocation, null);
           } else {
               //fail-mock
               try {
                   result = this.invoker.invoke(invocation);
   
                   //fix:#4585
                   if(result.getException() instanceof RpcException){
                       RpcException rpcException= (RpcException)result.getException();
                       if(rpcException.isBiz()){
                           throw  rpcException;
                       }else {
                           result = doMockInvoke(invocation, rpcException);
                       }
                   }
   
               } catch (RpcException e) {
                   if (e.isBiz()) {
                       throw e;
                   }
   
                   if (logger.isWarnEnabled()) {
                       logger.warn("fail-mock: " + invocation.getMethodName() + " fail-mock enabled , url : " + getUrl(), e);
                   }
                   result = doMockInvoke(invocation, e);
               }
           }
           return result;
       }
   To fix https://github.com/apache/dubbo/issues/4585,  the following code line is put inside a try statement:
   
   result = this.invoker.invoke(invocation);
   
   However, the other statement is not:
   
    if (value.length() == 0 || "false".equalsIgnoreCase(value)) {
               //no mock
               result = this.invoker.invoke(invocation);
           }
   
   Can this code line trigger similar bugs?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] AlbumenJ commented on issue #12613: MockClusterInvoker can ignore thrown exceptions

Posted by "AlbumenJ (via GitHub)" <gi...@apache.org>.
AlbumenJ commented on issue #12613:
URL: https://github.com/apache/dubbo/issues/12613#issuecomment-1617559683

   Why we need to catch RpcException if mock is empty.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] MockClusterInvoker can ignore thrown exceptions [dubbo]

Posted by "CrazyHZM (via GitHub)" <gi...@apache.org>.
CrazyHZM closed issue #12613: MockClusterInvoker can ignore thrown exceptions
URL: https://github.com/apache/dubbo/issues/12613


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org