THRIFT-2343 Fix tutotial code and codegen for methods without exceptions
Patch: Jens Geyer
diff --git a/tutorial/go/src/client.go b/tutorial/go/src/client.go
index 543d7fb..31376f8 100644
--- a/tutorial/go/src/client.go
+++ b/tutorial/go/src/client.go
@@ -20,10 +20,10 @@
*/
import (
+ "crypto/tls"
"fmt"
"git.apache.org/thrift.git/lib/go/thrift"
"tutorial"
- "crypto/tls"
)
func handleClient(client *tutorial.CalculatorClient) (err error) {
@@ -37,12 +37,12 @@
work.Op = tutorial.Operation_DIVIDE
work.Num1 = 1
work.Num2 = 0
- quotient, ouch, err := client.Calculate(1, work)
+ quotient, err := client.Calculate(1, work)
if err != nil {
fmt.Println("Error during operation:", err)
return err
- } else if ouch != nil {
- fmt.Println("Invalid operation:", ouch)
+ //} else if ouch != nil {
+ // fmt.Println("Invalid operation:", ouch)
} else {
fmt.Println("Whoa we can divide by 0 with new value:", quotient)
}
@@ -50,12 +50,12 @@
work.Op = tutorial.Operation_SUBTRACT
work.Num1 = 15
work.Num2 = 10
- diff, ouch, err := client.Calculate(1, work)
+ diff, err := client.Calculate(1, work)
if err != nil {
fmt.Println("Error during operation:", err)
return err
- } else if ouch != nil {
- fmt.Println("Invalid operation:", ouch)
+ //} else if ouch != nil {
+ // fmt.Println("Invalid operation:", ouch)
} else {
fmt.Print("15-10=", diff, "\n")
}
diff --git a/tutorial/go/src/handler.go b/tutorial/go/src/handler.go
index 3d4c18c..fb0daef 100644
--- a/tutorial/go/src/handler.go
+++ b/tutorial/go/src/handler.go
@@ -44,7 +44,7 @@
return num1 + num2, nil
}
-func (p *CalculatorHandler) Calculate(logid int32, w *tutorial.Work) (val int32, ouch *tutorial.InvalidOperation, err error) {
+func (p *CalculatorHandler) Calculate(logid int32, w *tutorial.Work) (val int32, err error) {
fmt.Print("calculate(", logid, ", {", w.Op, ",", w.Num1, ",", w.Num2, "})\n")
switch w.Op {
case tutorial.Operation_ADD:
@@ -58,17 +58,19 @@
break
case tutorial.Operation_DIVIDE:
if w.Num2 == 0 {
- ouch = tutorial.NewInvalidOperation()
+ ouch := tutorial.NewInvalidOperation()
ouch.What = int32(w.Op)
ouch.Why = "Cannot divide by 0"
+ err = ouch
return
}
val = w.Num1 / w.Num2
break
default:
- ouch = tutorial.NewInvalidOperation()
+ ouch := tutorial.NewInvalidOperation()
ouch.What = int32(w.Op)
ouch.Why = "Unknown operation"
+ err = ouch
return
}
entry := shared.NewSharedStruct()
@@ -84,7 +86,7 @@
}
*/
p.log[k] = entry
- return val, ouch, err
+ return val, err
}
func (p *CalculatorHandler) GetStruct(key int32) (*shared.SharedStruct, error) {
diff --git a/tutorial/go/src/server.go b/tutorial/go/src/server.go
index ebcfe5b..e4c4b97 100644
--- a/tutorial/go/src/server.go
+++ b/tutorial/go/src/server.go
@@ -20,10 +20,10 @@
*/
import (
+ "crypto/tls"
"fmt"
"git.apache.org/thrift.git/lib/go/thrift"
"tutorial"
- "crypto/tls"
)
func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string, secure bool) error {