This is an automated email from the ASF dual-hosted git repository.

dangogh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-trafficcontrol.git

commit 5ca70640e09b0e2c98c053c446a449f2e6b97bd0
Author: Dylan Volz <dylan_v...@comcast.com>
AuthorDate: Thu Feb 8 13:28:20 2018 -0700

    fix unclosed rows and error overwriting in cdns.go
---
 traffic_ops/traffic_ops_golang/cdn/cdns.go | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/traffic_ops/traffic_ops_golang/cdn/cdns.go 
b/traffic_ops/traffic_ops_golang/cdn/cdns.go
index ca02d09..7060bea 100644
--- a/traffic_ops/traffic_ops_golang/cdn/cdns.go
+++ b/traffic_ops/traffic_ops_golang/cdn/cdns.go
@@ -147,8 +147,8 @@ func (cdn *TOCDN) Update(db *sqlx.DB, user 
auth.CurrentUser) (error, tc.ApiError
        log.Debugf("about to run exec query: %s with cdn: %++v", 
updateCDNQuery(), cdn)
        resultRows, err := tx.NamedQuery(updateCDNQuery(), cdn)
        if err != nil {
-               if err, ok := err.(*pq.Error); ok {
-                       err, eType := 
dbhelpers.ParsePQUniqueConstraintError(err)
+               if pqErr, ok := err.(*pq.Error); ok {
+                       err, eType := 
dbhelpers.ParsePQUniqueConstraintError(pqErr)
                        if eType == tc.DataConflictError {
                                return errors.New("a cdn with " + err.Error()), 
eType
                        }
@@ -158,6 +158,8 @@ func (cdn *TOCDN) Update(db *sqlx.DB, user 
auth.CurrentUser) (error, tc.ApiError
                        return tc.DBError, tc.SystemError
                }
        }
+       defer resultRows.Close()
+
        var lastUpdated tc.Time
        rowsAffected := 0
        for resultRows.Next() {
@@ -205,14 +207,19 @@ func (cdn *TOCDN) Insert(db *sqlx.DB, user 
auth.CurrentUser) (error, tc.ApiError
        }
        resultRows, err := tx.NamedQuery(insertCDNQuery(), cdn)
        if err != nil {
-               if err, ok := err.(*pq.Error); ok {
-                       err, eType := 
dbhelpers.ParsePQUniqueConstraintError(err)
-                       return errors.New("a cdn with " + err.Error()), eType
+               if pqErr, ok := err.(*pq.Error); ok {
+                       err, eType := 
dbhelpers.ParsePQUniqueConstraintError(pqErr)
+                       if eType == tc.DataConflictError {
+                               return errors.New("a cdn with " + err.Error()), 
eType
+                       }
+                       return err, eType
                } else {
                        log.Errorf("received non pq error: %++v from create 
execution", err)
                        return tc.DBError, tc.SystemError
                }
        }
+       defer resultRows.Close()
+
        var id int
        var lastUpdated tc.Time
        rowsAffected := 0

-- 
To stop receiving notification emails like this one, please contact
dang...@apache.org.

Reply via email to