From 7ddef5ab61dfb868e9d0c683b44f2effaca24df0 Mon Sep 17 00:00:00 2001 From: Jerry Lee Date: Sun, 17 Mar 2013 17:43:29 +0800 Subject: [PATCH] =?UTF-8?q?DUBBO-625=20=E4=B8=9A=E5=8A=A1=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E7=9A=84toString=E6=96=B9=E6=B3=95=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E4=BC=9A=E5=AF=BC=E8=87=B4RemotingInvocationTimeoutScan?= =?UTF-8?q?=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dubbo/remoting/exchange/Request.java | 101 ++++++++++-------- 1 file changed, 57 insertions(+), 44 deletions(-) diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/Request.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/Request.java index 062d0db6c16..33c0072f287 100644 --- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/Request.java +++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/Request.java @@ -1,42 +1,44 @@ -/* - * Copyright 1999-2011 Alibaba Group. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +/* + * Copyright 1999-2011 Alibaba Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.alibaba.dubbo.remoting.exchange; import java.util.concurrent.atomic.AtomicLong; +import com.alibaba.dubbo.common.utils.StringUtils; + /** * Request. * * @author qian.lei * @author william.liangf */ -public class Request { - - public static final String HEARTBEAT_EVENT = null; - - public static final String READONLY_EVENT = "R"; - +public class Request { + + public static final String HEARTBEAT_EVENT = null; + + public static final String READONLY_EVENT = "R"; + private static final AtomicLong INVOKE_ID = new AtomicLong(0); private final long mId; private String mVersion; - private boolean mTwoWay = true; - + private boolean mTwoWay = true; + private boolean mEvent = false; private boolean mBroken = false; @@ -70,15 +72,15 @@ public boolean isTwoWay() { public void setTwoWay(boolean twoWay) { mTwoWay = twoWay; } - - public boolean isEvent() { - return mEvent; - } - - public void setEvent(String event) { - mEvent = true; - mData = event; - } + + public boolean isEvent() { + return mEvent; + } + + public void setEvent(String event) { + mEvent = true; + mData = event; + } public boolean isBroken() { return mBroken; @@ -95,16 +97,16 @@ public Object getData() { public void setData(Object msg) { mData = msg; } - - public boolean isHeartbeat() { - return mEvent && HEARTBEAT_EVENT == mData; - } - - public void setHeartbeat(boolean isHeartbeat) { - if (isHeartbeat) { - setEvent(HEARTBEAT_EVENT); - } - } + + public boolean isHeartbeat() { + return mEvent && HEARTBEAT_EVENT == mData; + } + + public void setHeartbeat(boolean isHeartbeat) { + if (isHeartbeat) { + setEvent(HEARTBEAT_EVENT); + } + } private static long newId() { // getAndIncrement()增长到MAX_VALUE时,再增长会变为MIN_VALUE,负数也可以做为ID @@ -114,7 +116,18 @@ private static long newId() { @Override public String toString() { return "Request [id=" + mId + ", version=" + mVersion + ", twoway=" + mTwoWay + ", event=" + mEvent - + ", broken=" + mBroken + ", data=" + (mData == this ? "this" : mData) + "]"; + + ", broken=" + mBroken + ", data=" + (mData == this ? "this" : safeToString(mData)) + "]"; } -} \ No newline at end of file + private static String safeToString(Object data) { + if (data == null) return null; + String dataStr; + try { + dataStr = data.toString(); + } catch (Throwable e) { + dataStr = ""; + } + return dataStr; + } +}