You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2018/10/11 22:21:41 UTC
[09/12] qpid-proton git commit: NO-JIRA: Map Go errors to
amqp::internal-error
NO-JIRA: Map Go errors to amqp::internal-error
Previously using go error type name which is not useful, and often empty.
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/84844a95
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/84844a95
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/84844a95
Branch: refs/heads/master
Commit: 84844a95c37d8e6dcdc397b9974769e07980e8ae
Parents: ccaeaa0
Author: Alan Conway <ac...@redhat.com>
Authored: Fri Oct 5 17:05:16 2018 -0400
Committer: Alan Conway <ac...@redhat.com>
Committed: Thu Oct 11 15:14:20 2018 -0400
----------------------------------------------------------------------
go/src/qpid.apache.org/amqp/error.go | 11 +++++++----
go/src/qpid.apache.org/proton/wrappers.go | 17 ++++++-----------
2 files changed, 13 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/84844a95/go/src/qpid.apache.org/amqp/error.go
----------------------------------------------------------------------
diff --git a/go/src/qpid.apache.org/amqp/error.go b/go/src/qpid.apache.org/amqp/error.go
index 3a178b2..a8974cb 100644
--- a/go/src/qpid.apache.org/amqp/error.go
+++ b/go/src/qpid.apache.org/amqp/error.go
@@ -24,7 +24,6 @@ import "C"
import (
"fmt"
- "reflect"
)
// Error is an AMQP error condition. It has a name and a description.
@@ -46,10 +45,14 @@ func Errorf(name, format string, arg ...interface{}) Error {
return Error{name, fmt.Sprintf(format, arg...)}
}
-// MakeError makes an AMQP error from a go error using the Go error type as the name
-// and the err.Error() string as the description.
+// MakeError makes an AMQP error from a go error: {Name: InternalError, Description: err.Error()}
+// If err is already an amqp.Error it is returned unchanged.
func MakeError(err error) Error {
- return Error{reflect.TypeOf(err).Name(), err.Error()}
+ if amqpErr, ok := err.(Error); ok {
+ return amqpErr
+ } else {
+ return Error{InternalError, err.Error()}
+ }
}
var (
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/84844a95/go/src/qpid.apache.org/proton/wrappers.go
----------------------------------------------------------------------
diff --git a/go/src/qpid.apache.org/proton/wrappers.go b/go/src/qpid.apache.org/proton/wrappers.go
index a7b7fb2..42b2a23 100644
--- a/go/src/qpid.apache.org/proton/wrappers.go
+++ b/go/src/qpid.apache.org/proton/wrappers.go
@@ -37,10 +37,10 @@ import "C"
import (
"fmt"
- "qpid.apache.org/amqp"
- "reflect"
"time"
"unsafe"
+
+ "qpid.apache.org/amqp"
)
// TODO aconway 2015-05-05: Documentation for generated types.
@@ -379,17 +379,12 @@ func (c Condition) Error() error {
return amqp.Error{Name: c.Name(), Description: c.Description()}
}
-// Set a Go error into a condition.
-// If it is not an amqp.Condition use the error type as name, error string as description.
+// Set a Go error into a condition, converting to an amqp.Error using amqp.MakeError
func (c Condition) SetError(err error) {
if err != nil {
- if cond, ok := err.(amqp.Error); ok {
- c.SetName(cond.Name)
- c.SetDescription(cond.Description)
- } else {
- c.SetName(reflect.TypeOf(err).Name())
- c.SetDescription(err.Error())
- }
+ cond := amqp.MakeError(err)
+ c.SetName(cond.Name)
+ c.SetDescription(cond.Description)
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org