diff --git a/examples/dubbo/go-client/app/user.go b/examples/dubbo/go-client/app/user.go
index ee56e23ba33e3875f58d17024747fb212cd5e1ad..59e105109ecb7213a071ca9071737e14fff0869e 100644
--- a/examples/dubbo/go-client/app/user.go
+++ b/examples/dubbo/go-client/app/user.go
@@ -25,10 +25,13 @@ import (
)
import (
- "github.com/apache/dubbo-go/config"
hessian "github.com/dubbogo/hessian2"
)
+import (
+ "github.com/apache/dubbo-go/config"
+)
+
type Gender hessian.JavaEnum
func init() {
diff --git a/examples/dubbo/go-server/app/server.go b/examples/dubbo/go-server/app/server.go
index db0196f63e2a43fcf06d73f15d925cf8af6f1867..a5c89be7a6b36ddaaae8b515729aaccd203c19f1 100644
--- a/examples/dubbo/go-server/app/server.go
+++ b/examples/dubbo/go-server/app/server.go
@@ -26,11 +26,11 @@ import (
)
import (
- "github.com/apache/dubbo-go/common/logger"
hessian "github.com/dubbogo/hessian2"
)
import (
+ "github.com/apache/dubbo-go/common/logger"
"github.com/apache/dubbo-go/config"
_ "github.com/apache/dubbo-go/protocol/dubbo"
_ "github.com/apache/dubbo-go/registry/protocol"
diff --git a/examples/dubbo/go-server/app/user.go b/examples/dubbo/go-server/app/user.go
index c55b040eed5580ee842c20fb7ef5186b940aab82..e4400cc270ad46c84085b52e8879bbd49969bcb0 100644
--- a/examples/dubbo/go-server/app/user.go
+++ b/examples/dubbo/go-server/app/user.go
@@ -146,7 +146,7 @@ func (u *UserProvider) GetUser(ctx context.Context, req []interface{}, rsp *User
}
func (u *UserProvider) GetErr(ctx context.Context, req []interface{}, rsp *User) error {
- return perrors.New("exception")
+ return hessian.NewThrowable("exception")
}
func (u *UserProvider) GetUser0(id string, name string) (User, error) {
diff --git a/examples/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java b/examples/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
index 0e4a9267715b27ebc6f1bd5174d579461072f276..f1100e79ac2ee31ea13b98af345d5472eb08488e 100644
--- a/examples/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/examples/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -59,9 +59,9 @@ public class Consumer {
}
try {
userProvider.GetErr("A003");
- } catch (Exception e) {
+ } catch (Throwable t) {
System.out.println("*************exception***********");
- e.printStackTrace();
+ t.printStackTrace();
}
}
diff --git a/go.mod b/go.mod
index 66757f22f3d92c7c6c4ef8287756f7a1cd959ed0..df9ce48d1853a9cd51b1553f902010ea40a150a4 100644
--- a/go.mod
+++ b/go.mod
@@ -2,7 +2,7 @@ module github.com/apache/dubbo-go
require (
github.com/dubbogo/getty v0.0.0-20190523180329-bdf5e640ea53
- github.com/dubbogo/hessian2 v0.0.0-20190604191323-5290af08fb56
+ github.com/dubbogo/hessian2 v0.0.0-20190606185624-13bbc9786e3f
github.com/pkg/errors v0.8.1
github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec
github.com/stretchr/testify v1.3.0
diff --git a/go.sum b/go.sum
index db094a9133b7aa65f0eaeb9274499fbc3141b081..f3cd528352fccaee17853d91dabfa00e7f5c0289 100644
--- a/go.sum
+++ b/go.sum
@@ -6,8 +6,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dubbogo/getty v0.0.0-20190523180329-bdf5e640ea53 h1:bniSNoC4xnAbrx4estwc9F0qkWnh6ZDsAS0y9d7mPos=
github.com/dubbogo/getty v0.0.0-20190523180329-bdf5e640ea53/go.mod h1:cRMSuoCmwc5lULFFnYZTxyCfZhObmRTNbS7XRnPNHSo=
-github.com/dubbogo/hessian2 v0.0.0-20190604191323-5290af08fb56 h1:5ZhIvx1pqtpRSfUzcc6jkF9pFsx/DcwymDuuaM3jFuw=
-github.com/dubbogo/hessian2 v0.0.0-20190604191323-5290af08fb56/go.mod h1:XFGDn4oSZX26zkcfhkM/fCJrOqwQJxk/xgWW1KMJBKM=
+github.com/dubbogo/hessian2 v0.0.0-20190606185624-13bbc9786e3f h1:oN6hLbasIJuqlT+/R0F1dVIDaXG+Sun9PE6yFogTtSs=
+github.com/dubbogo/hessian2 v0.0.0-20190606185624-13bbc9786e3f/go.mod h1:XFGDn4oSZX26zkcfhkM/fCJrOqwQJxk/xgWW1KMJBKM=
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
diff --git a/protocol/dubbo/codec.go b/protocol/dubbo/codec.go
index a20fcfabd1ca93b6ad5073d3ff56a51a3a16bbe7..e26db06a751982850864fbd45268d4392b022bb9 100644
--- a/protocol/dubbo/codec.go
+++ b/protocol/dubbo/codec.go
@@ -74,7 +74,7 @@ func (p *DubboPackage) Marshal() (*bytes.Buffer, error) {
}
func (p *DubboPackage) Unmarshal(buf *bytes.Buffer, opts ...interface{}) error {
- codec := hessian.NewHessianCodec(bufio.NewReader(buf))
+ codec := hessian.NewHessianCodec(bufio.NewReaderSize(buf, buf.Len()))
// read header
err := codec.ReadHeader(&p.Header)
diff --git a/protocol/dubbo/listener.go b/protocol/dubbo/listener.go
index 84be5818825f1abf1d92c21473733a5e4d6137fb..9e99bcb628ea1c3075d5768bfd79bb2083f434f9 100644
--- a/protocol/dubbo/listener.go
+++ b/protocol/dubbo/listener.go
@@ -22,16 +22,20 @@ import (
"reflect"
"sync"
"time"
+)
+import (
"github.com/dubbogo/getty"
+ "github.com/dubbogo/hessian2"
+ perrors "github.com/pkg/errors"
+)
+import (
"github.com/apache/dubbo-go/common"
"github.com/apache/dubbo-go/common/constant"
"github.com/apache/dubbo-go/common/logger"
"github.com/apache/dubbo-go/protocol"
"github.com/apache/dubbo-go/protocol/invocation"
- hessian "github.com/dubbogo/hessian2"
- perrors "github.com/pkg/errors"
)
// todo: WritePkg_Timeout will entry *.yml
@@ -323,7 +327,7 @@ func (h *RpcServerHandler) callService(req *DubboPackage, ctx context.Context) {
}
if retErr != nil {
req.Header.ResponseStatus = hessian.Response_OK
- req.Body = perrors.WithStack(retErr.(error))
+ req.Body = retErr
} else {
req.Body = replyv.Interface()
}
diff --git a/registry/zookeeper/registry.go b/registry/zookeeper/registry.go
index fbcc9e4546b908f5d11d3b2f8915003fa9512be2..5302c84c8e445026d6d9c68221249a46d263e09c 100644
--- a/registry/zookeeper/registry.go
+++ b/registry/zookeeper/registry.go
@@ -29,7 +29,6 @@ import (
)
import (
- "github.com/apache/dubbo-go/common/logger"
perrors "github.com/pkg/errors"
"github.com/samuel/go-zookeeper/zk"
)
@@ -38,6 +37,7 @@ import (
"github.com/apache/dubbo-go/common"
"github.com/apache/dubbo-go/common/constant"
"github.com/apache/dubbo-go/common/extension"
+ "github.com/apache/dubbo-go/common/logger"
"github.com/apache/dubbo-go/common/utils"
"github.com/apache/dubbo-go/registry"
"github.com/apache/dubbo-go/version"
diff --git a/registry/zookeeper/zk_client.go b/registry/zookeeper/zk_client.go
index a8b14bb2bd04938e84cf3c7f482f6ae650c3c98b..bd273ff409f0bda2f0bf7e5f5cbdeaaad83fcce3 100644
--- a/registry/zookeeper/zk_client.go
+++ b/registry/zookeeper/zk_client.go
@@ -25,11 +25,14 @@ import (
)
import (
- "github.com/apache/dubbo-go/common/logger"
perrors "github.com/pkg/errors"
"github.com/samuel/go-zookeeper/zk"
)
+import (
+ "github.com/apache/dubbo-go/common/logger"
+)
+
var (
errNilZkClientConn = perrors.New("zookeeperclient{conn} is nil")
)