From 12673832b1bce1655e07e8dc97e10fa09f59f52c Mon Sep 17 00:00:00 2001 From: "chao.liuc" Date: Fri, 28 Oct 2011 07:33:01 +0000 Subject: [PATCH] =?UTF-8?q?DUBBO-11=20NPE=E9=97=AE=E9=A2=98=E8=A7=A3?= =?UTF-8?q?=E5=86=B3.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@109 1a56cb94-b969-4eaa-88fa-be21384802f2 --- .../rpc/protocol/dubbo/filter/FutureFilter.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/filter/FutureFilter.java b/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/filter/FutureFilter.java index 29df0a52f8..2530f8935f 100644 --- a/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/filter/FutureFilter.java +++ b/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/filter/FutureFilter.java @@ -70,8 +70,17 @@ public class FutureFilter implements Filter { if (f instanceof FutureAdapter) { ResponseFuture future = ((FutureAdapter)f).getFuture(); future.setCallback(new ResponseCallback() { - public void done(Object response) { - Result result = (Result) response; + public void done(Object rpcResult) { + if (rpcResult == null){ + logger.error(new IllegalStateException("invalid result value : null, expected "+Result.class.getName())); + return; + } + ///must be rpcResult + if (! (rpcResult instanceof Result)){ + logger.error(new IllegalStateException("invalid result type :" + rpcResult.getClass() + ", expected "+Result.class.getName())); + return; + } + Result result = (Result) rpcResult; if (result.hasException()) { fireThrowCallback(invoker, invocation, result.getException()); } else {