)]}'
{"java/src/main/java/monasca/api/infrastructure/persistence/vertica/MeasurementVerticaRepoImpl.java":[{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"4acc20e7730816c67fb12e2a45772d6e60f64add","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"      }"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"      try {"},{"line_number":164,"context_line":"        List\u003cMap\u003cString, Object\u003e\u003e rows \u003d query.list();"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        if (rows.size() \u003d\u003d 0) {"},{"line_number":167,"context_line":"          return new ArrayList\u003c\u003e();"}],"source_content_type":"text/x-java","patch_set":4,"id":"9ad45d7e_fddf460a","line":164,"range":{"start_line":163,"start_character":6,"end_line":164,"end_character":54},"updated":"2016-08-11 22:24:32.000000000","message":"This would be a lot clear if it only included the query.list() in the try block","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"1ba3f8080436e1cae48f02aa0bc5c772edf4ebe8","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"      }"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"      try {"},{"line_number":164,"context_line":"        List\u003cMap\u003cString, Object\u003e\u003e rows \u003d query.list();"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        if (rows.size() \u003d\u003d 0) {"},{"line_number":167,"context_line":"          return new ArrayList\u003c\u003e();"}],"source_content_type":"text/x-java","patch_set":4,"id":"3ac371cc_b77ef216","line":164,"range":{"start_line":163,"start_character":6,"end_line":164,"end_character":54},"in_reply_to":"9ad45d7e_fddf460a","updated":"2016-08-17 17:38:34.000000000","message":"Done","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"a80c839bfd7842992002715fd8d01c8e62c78d59","unresolved":false,"context_lines":[{"line_number":217,"context_line":"          }"},{"line_number":218,"context_line":"        }"},{"line_number":219,"context_line":"      } catch (Exception e) {"},{"line_number":220,"context_line":"        // Can not print out the whole error message from the exception because it contains a lot of query vertica"},{"line_number":221,"context_line":"        // information and it is very long."},{"line_number":222,"context_line":"        if (e.getMessage().contains(\"ERROR: Date/time field value out of range\")) {"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"9ad45d7e_380bac25","line":220,"range":{"start_line":220,"start_character":24,"end_line":220,"end_character":25},"updated":"2016-08-11 22:33:40.000000000","message":"do we need this comment here?","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"1ba3f8080436e1cae48f02aa0bc5c772edf4ebe8","unresolved":false,"context_lines":[{"line_number":217,"context_line":"          }"},{"line_number":218,"context_line":"        }"},{"line_number":219,"context_line":"      } catch (Exception e) {"},{"line_number":220,"context_line":"        // Can not print out the whole error message from the exception because it contains a lot of query vertica"},{"line_number":221,"context_line":"        // information and it is very long."},{"line_number":222,"context_line":"        if (e.getMessage().contains(\"ERROR: Date/time field value out of range\")) {"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"9ad45d7e_42b473d0","line":220,"range":{"start_line":220,"start_character":24,"end_line":220,"end_character":25},"in_reply_to":"9ad45d7e_380bac25","updated":"2016-08-17 17:38:34.000000000","message":"I think so. Because usually we just throw the original error message from the exception but here we can\u0027t do that.","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"a80c839bfd7842992002715fd8d01c8e62c78d59","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        // information and it is very long."},{"line_number":222,"context_line":"        if (e.getMessage().contains(\"ERROR: Date/time field value out of range\")) {"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"          throw Exceptions.unprocessableEntity(\"ERROR: Date/time field value out of range\");"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        } else {"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"9ad45d7e_ddf36271","line":224,"range":{"start_line":224,"start_character":60,"end_line":224,"end_character":64},"updated":"2016-08-11 22:33:40.000000000","message":"should we print the date and time value here?","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"1ba3f8080436e1cae48f02aa0bc5c772edf4ebe8","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        // information and it is very long."},{"line_number":222,"context_line":"        if (e.getMessage().contains(\"ERROR: Date/time field value out of range\")) {"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"          throw Exceptions.unprocessableEntity(\"ERROR: Date/time field value out of range\");"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        } else {"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"3ac371cc_f7ab4a73","line":224,"range":{"start_line":224,"start_character":60,"end_line":224,"end_character":64},"in_reply_to":"9ad45d7e_ddf36271","updated":"2016-08-17 17:38:34.000000000","message":"Agree!","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"a80c839bfd7842992002715fd8d01c8e62c78d59","unresolved":false,"context_lines":[{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        } else {"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"          throw Exceptions.unprocessableEntity(\"Vertica Database cannot process the query\");"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        }"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"9ad45d7e_1dd33ad6","line":228,"range":{"start_line":228,"start_character":56,"end_line":228,"end_character":64},"updated":"2016-08-11 22:33:40.000000000","message":"in this case it would really help to know the error message from vertica even if it is only some of it. Would it be worth it to include some of the exception?","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"1ba3f8080436e1cae48f02aa0bc5c772edf4ebe8","unresolved":false,"context_lines":[{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        } else {"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"          throw Exceptions.unprocessableEntity(\"Vertica Database cannot process the query\");"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        }"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"3ac371cc_1ea36fb3","line":228,"range":{"start_line":228,"start_character":56,"end_line":228,"end_character":64},"in_reply_to":"9ad45d7e_1dd33ad6","updated":"2016-08-17 17:38:34.000000000","message":"Agree!","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"9046e2dfe0c00caa17ee3517f8d9d97bfa277948","unresolved":false,"context_lines":[{"line_number":161,"context_line":"      }"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"      List\u003cMap\u003cString, Object\u003e\u003e rows;"},{"line_number":164,"context_line":"      try {"},{"line_number":165,"context_line":"        rows \u003d query.list();"},{"line_number":166,"context_line":"      } catch (Exception e) {"},{"line_number":167,"context_line":"        // Can not print out the whole error message from the exception because it contains a lot of query vertica"},{"line_number":168,"context_line":"        // information and it is very long."},{"line_number":169,"context_line":"        if (e.getMessage().contains(\"ERROR: Date/time field value out of range\")) {"}],"source_content_type":"text/x-java","patch_set":5,"id":"3ac371cc_79aefde6","line":166,"range":{"start_line":164,"start_character":6,"end_line":166,"end_character":29},"updated":"2016-08-17 17:43:47.000000000","message":"This whole try catch block is used in multiple places, might be worth pulling it out to a shared method call","commit_id":"67e6b4237d90faa687159bf6a6201becc19e23e4"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8bc2f06ed6ca71bf87c6f8deb89c942f00210ab3","unresolved":false,"context_lines":[{"line_number":161,"context_line":"      }"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"      List\u003cMap\u003cString, Object\u003e\u003e rows;"},{"line_number":164,"context_line":"      try {"},{"line_number":165,"context_line":"        rows \u003d query.list();"},{"line_number":166,"context_line":"      } catch (Exception e) {"},{"line_number":167,"context_line":"        // Can not print out the whole error message from the exception because it contains a lot of query vertica"},{"line_number":168,"context_line":"        // information and it is very long."},{"line_number":169,"context_line":"        if (e.getMessage().contains(\"ERROR: Date/time field value out of range\")) {"}],"source_content_type":"text/x-java","patch_set":5,"id":"3ac371cc_0a7b26f6","line":166,"range":{"start_line":164,"start_character":6,"end_line":166,"end_character":29},"in_reply_to":"3ac371cc_79aefde6","updated":"2016-08-17 20:33:14.000000000","message":"Done","commit_id":"67e6b4237d90faa687159bf6a6201becc19e23e4"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"9046e2dfe0c00caa17ee3517f8d9d97bfa277948","unresolved":false,"context_lines":[{"line_number":166,"context_line":"      } catch (Exception e) {"},{"line_number":167,"context_line":"        // Can not print out the whole error message from the exception because it contains a lot of query vertica"},{"line_number":168,"context_line":"        // information and it is very long."},{"line_number":169,"context_line":"        if (e.getMessage().contains(\"ERROR: Date/time field value out of range\")) {"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"          throw Exceptions.unprocessableEntity(e.getCause().toString());"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"3ac371cc_1976e9a3","line":169,"range":{"start_line":169,"start_character":9,"end_line":169,"end_character":35},"updated":"2016-08-17 17:43:47.000000000","message":"Is this check really necessary? We could easily allow everything to flow through one path I think.","commit_id":"67e6b4237d90faa687159bf6a6201becc19e23e4"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8bc2f06ed6ca71bf87c6f8deb89c942f00210ab3","unresolved":false,"context_lines":[{"line_number":166,"context_line":"      } catch (Exception e) {"},{"line_number":167,"context_line":"        // Can not print out the whole error message from the exception because it contains a lot of query vertica"},{"line_number":168,"context_line":"        // information and it is very long."},{"line_number":169,"context_line":"        if (e.getMessage().contains(\"ERROR: Date/time field value out of range\")) {"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"          throw Exceptions.unprocessableEntity(e.getCause().toString());"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"3ac371cc_ca1e2eba","line":169,"range":{"start_line":169,"start_character":9,"end_line":169,"end_character":35},"in_reply_to":"3ac371cc_1976e9a3","updated":"2016-08-17 20:33:14.000000000","message":"Since we gonna convert all exceptions into unprocessableEntity here, this check is not necessary.","commit_id":"67e6b4237d90faa687159bf6a6201becc19e23e4"}],"java/src/main/java/monasca/api/infrastructure/persistence/vertica/MetricDefinitionVerticaRepoImpl.java":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"a80c839bfd7842992002715fd8d01c8e62c78d59","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        // information and it is very long."},{"line_number":309,"context_line":"        if (e.getMessage().contains(\"ERROR: Date/time field value out of range\")) {"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"          throw Exceptions.unprocessableEntity(\"ERROR: Date/time field value out of range\");"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        } else {"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"9ad45d7e_3db55e7d","line":311,"range":{"start_line":311,"start_character":48,"end_line":311,"end_character":53},"updated":"2016-08-11 22:33:40.000000000","message":"same comments","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9722b0d72f24a75d4468ce78c392e3c108260acb","unresolved":false,"context_lines":[{"line_number":269,"context_line":"      MetricQueries.bindDimensionsToQuery(query, dimensions);"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"      List\u003cMap\u003cString, Object\u003e\u003e rows;"},{"line_number":272,"context_line":"      rows \u003d VerticaUtils.queryList(query);"},{"line_number":273,"context_line":"      return rows;"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    }"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_dc2b5b80","line":272,"range":{"start_line":272,"start_character":13,"end_line":272,"end_character":43},"updated":"2016-10-10 16:00:00.000000000","message":"This should just be:\n\nreturn VerticaUtils.queryList(query);","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"b2c260eda491a8c2be23766134a9812ab05b5fff","unresolved":false,"context_lines":[{"line_number":269,"context_line":"      MetricQueries.bindDimensionsToQuery(query, dimensions);"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"      List\u003cMap\u003cString, Object\u003e\u003e rows;"},{"line_number":272,"context_line":"      rows \u003d VerticaUtils.queryList(query);"},{"line_number":273,"context_line":"      return rows;"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    }"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_3f7fd115","line":272,"range":{"start_line":272,"start_character":13,"end_line":272,"end_character":43},"in_reply_to":"1a95cdbc_dc2b5b80","updated":"2016-10-10 17:43:52.000000000","message":"Done","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"}],"java/src/main/java/monasca/api/infrastructure/persistence/vertica/StatisticVerticaRepoImpl.java":[{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"4acc20e7730816c67fb12e2a45772d6e60f64add","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        MetricQueries.bindOffsetToQuery(query, offset);"},{"line_number":110,"context_line":"      }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"      try {"},{"line_number":113,"context_line":"        List\u003cMap\u003cString, Object\u003e\u003e rows \u003d query.list();"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        if (rows.size() \u003d\u003d 0) {"},{"line_number":116,"context_line":"          return new ArrayList\u003c\u003e();"}],"source_content_type":"text/x-java","patch_set":4,"id":"9ad45d7e_dde242d4","line":113,"range":{"start_line":112,"start_character":6,"end_line":113,"end_character":54},"updated":"2016-08-11 22:24:32.000000000","message":"This would be a lot clear if it only included the query.list() in the try block","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"1ba3f8080436e1cae48f02aa0bc5c772edf4ebe8","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        MetricQueries.bindOffsetToQuery(query, offset);"},{"line_number":110,"context_line":"      }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"      try {"},{"line_number":113,"context_line":"        List\u003cMap\u003cString, Object\u003e\u003e rows \u003d query.list();"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        if (rows.size() \u003d\u003d 0) {"},{"line_number":116,"context_line":"          return new ArrayList\u003c\u003e();"}],"source_content_type":"text/x-java","patch_set":4,"id":"3ac371cc_378a021c","line":113,"range":{"start_line":112,"start_character":6,"end_line":113,"end_character":54},"in_reply_to":"9ad45d7e_dde242d4","updated":"2016-08-17 17:38:34.000000000","message":"Done","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"a80c839bfd7842992002715fd8d01c8e62c78d59","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        }"},{"line_number":175,"context_line":"      } catch (Exception e) {"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        if (e.getMessage().contains(\"ERROR: Date/time field value out of range\")) {"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"          throw Exceptions.unprocessableEntity(\"ERROR: Date/time field value out of range\");"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"9ad45d7e_dd1d2274","line":177,"range":{"start_line":177,"start_character":54,"end_line":177,"end_character":59},"updated":"2016-08-11 22:33:40.000000000","message":"same here","commit_id":"24c19f4ba8ec7852b7379e664f1eafb758c63187"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"a54eaf978dfb9a89d03f5544c3664bff3ab43d95","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import monasca.api.domain.model.statistic.Statistics;"},{"line_number":19,"context_line":"import monasca.api.ApiConfig;"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import monasca.api.resource.exception.Exceptions;"},{"line_number":22,"context_line":"import org.joda.time.DateTime;"},{"line_number":23,"context_line":"import org.joda.time.format.DateTimeFormatter;"},{"line_number":24,"context_line":"import org.joda.time.format.ISODateTimeFormat;"}],"source_content_type":"text/x-java","patch_set":7,"id":"3ac371cc_97f44b5b","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":49},"updated":"2016-08-18 03:34:47.000000000","message":"This import isn\u0027t used","commit_id":"eb55e9aff27d3b5627c168541feaaefe589a4b53"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9722b0d72f24a75d4468ce78c392e3c108260acb","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import monasca.api.domain.model.statistic.Statistics;"},{"line_number":19,"context_line":"import monasca.api.ApiConfig;"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import monasca.api.resource.exception.Exceptions;"},{"line_number":22,"context_line":"import org.joda.time.DateTime;"},{"line_number":23,"context_line":"import org.joda.time.format.DateTimeFormatter;"},{"line_number":24,"context_line":"import org.joda.time.format.ISODateTimeFormat;"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_5c110b51","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":49},"updated":"2016-10-10 16:00:00.000000000","message":"This import is not used","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"b2c260eda491a8c2be23766134a9812ab05b5fff","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import monasca.api.domain.model.statistic.Statistics;"},{"line_number":19,"context_line":"import monasca.api.ApiConfig;"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import monasca.api.resource.exception.Exceptions;"},{"line_number":22,"context_line":"import org.joda.time.DateTime;"},{"line_number":23,"context_line":"import org.joda.time.format.DateTimeFormatter;"},{"line_number":24,"context_line":"import org.joda.time.format.ISODateTimeFormat;"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_5fc81d55","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":49},"in_reply_to":"1a95cdbc_5c110b51","updated":"2016-10-10 17:43:52.000000000","message":"Done","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"}],"java/src/main/java/monasca/api/infrastructure/persistence/vertica/VerticaUtils.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"a54eaf978dfb9a89d03f5544c3664bff3ab43d95","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        List\u003cMap\u003cString, Object\u003e\u003e rows;"},{"line_number":25,"context_line":"        try {"},{"line_number":26,"context_line":"            rows \u003d query.list();"},{"line_number":27,"context_line":"        } catch (Exception e) {"},{"line_number":28,"context_line":"            throw Exceptions.unprocessableEntity(e.getCause().toString());"},{"line_number":29,"context_line":"        }"},{"line_number":30,"context_line":"        return rows;"}],"source_content_type":"text/x-java","patch_set":7,"id":"3ac371cc_170b3b2b","line":27,"range":{"start_line":27,"start_character":17,"end_line":27,"end_character":26},"updated":"2016-08-18 03:34:47.000000000","message":"What exception is thrown by Vertica in the bad time case? Mapping all Exceptions to an UnprocessableEntity seems too much","commit_id":"eb55e9aff27d3b5627c168541feaaefe589a4b53"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"cecde3fbaf9b80760198b2dddf12be59319b5228","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        List\u003cMap\u003cString, Object\u003e\u003e rows;"},{"line_number":25,"context_line":"        try {"},{"line_number":26,"context_line":"            rows \u003d query.list();"},{"line_number":27,"context_line":"        } catch (Exception e) {"},{"line_number":28,"context_line":"            throw Exceptions.unprocessableEntity(e.getCause().toString());"},{"line_number":29,"context_line":"        }"},{"line_number":30,"context_line":"        return rows;"}],"source_content_type":"text/x-java","patch_set":7,"id":"3ac371cc_8ceb79db","line":27,"range":{"start_line":27,"start_character":17,"end_line":27,"end_character":26},"in_reply_to":"3ac371cc_170b3b2b","updated":"2016-08-18 15:12:27.000000000","message":"Vertica throws SERVER_ERROR with message \"Date/time field value out of range\u0027. Do you think it\u0027s better to map this specific one to UnprocessableEntity and then report the other exceptions as itself is better?","commit_id":"eb55e9aff27d3b5627c168541feaaefe589a4b53"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"31d34a898201ae2d954bc1f91fc79a940e941c71","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"public class VerticaUtils {"},{"line_number":25,"context_line":"    public List\u003cMap\u003cString, Object\u003e\u003e queryList(Query\u003cMap\u003cString, Object\u003e\u003e query) {"},{"line_number":26,"context_line":"        List\u003cMap\u003cString, Object\u003e\u003e rows;"},{"line_number":27,"context_line":"        try {"},{"line_number":28,"context_line":"            rows \u003d query.list();"}],"source_content_type":"text/x-java","patch_set":8,"id":"fa7ab95a_7fb9d678","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":10},"updated":"2016-09-01 15:34:26.000000000","message":"Shouldn\u0027t this be declared as static? There isn\u0027t any state in this class, and the one method, queryList, just evaluates based on the parameters that are passed to it.\n\nSee, http://stackoverflow.com/questions/7486012/static-classes-in-java, for an example.","commit_id":"a5268fb27379aa4743af86f0e37edb7d4dadfe39"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"f46edd2136bd883dc3377277e1436114d13a847f","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"public class VerticaUtils {"},{"line_number":25,"context_line":"    public List\u003cMap\u003cString, Object\u003e\u003e queryList(Query\u003cMap\u003cString, Object\u003e\u003e query) {"},{"line_number":26,"context_line":"        List\u003cMap\u003cString, Object\u003e\u003e rows;"},{"line_number":27,"context_line":"        try {"},{"line_number":28,"context_line":"            rows \u003d query.list();"}],"source_content_type":"text/x-java","patch_set":8,"id":"9a89bdaa_e80e87e4","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":10},"in_reply_to":"fa7ab95a_7fb9d678","updated":"2016-09-02 20:51:16.000000000","message":"Will do! Thank you Roland.","commit_id":"a5268fb27379aa4743af86f0e37edb7d4dadfe39"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9722b0d72f24a75d4468ce78c392e3c108260acb","unresolved":false,"context_lines":[{"line_number":13,"context_line":" */"},{"line_number":14,"context_line":"package monasca.api.infrastructure.persistence.vertica;"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import monasca.api.resource.exception.Exceptions;"},{"line_number":17,"context_line":"import org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException;"},{"line_number":18,"context_line":"import org.skife.jdbi.v2.Query;"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_bcebef11","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":49},"updated":"2016-10-10 16:00:00.000000000","message":"There should be a blank line after this import","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"b2c260eda491a8c2be23766134a9812ab05b5fff","unresolved":false,"context_lines":[{"line_number":13,"context_line":" */"},{"line_number":14,"context_line":"package monasca.api.infrastructure.persistence.vertica;"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import monasca.api.resource.exception.Exceptions;"},{"line_number":17,"context_line":"import org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException;"},{"line_number":18,"context_line":"import org.skife.jdbi.v2.Query;"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_1fe935b7","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":49},"in_reply_to":"1a95cdbc_bcebef11","updated":"2016-10-10 17:43:52.000000000","message":"Done","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9722b0d72f24a75d4468ce78c392e3c108260acb","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"public class VerticaUtils {"},{"line_number":25,"context_line":"    public static List\u003cMap\u003cString, Object\u003e\u003e queryList(Query\u003cMap\u003cString, Object\u003e\u003e query) {"},{"line_number":26,"context_line":"        List\u003cMap\u003cString, Object\u003e\u003e rows;"},{"line_number":27,"context_line":"        try {"},{"line_number":28,"context_line":"            rows \u003d query.list();"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_7cb8872a","line":25,"range":{"start_line":25,"start_character":11,"end_line":25,"end_character":17},"updated":"2016-10-10 16:00:00.000000000","message":"Given how this is used, this should not be static","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"b2c260eda491a8c2be23766134a9812ab05b5fff","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"public class VerticaUtils {"},{"line_number":25,"context_line":"    public static List\u003cMap\u003cString, Object\u003e\u003e queryList(Query\u003cMap\u003cString, Object\u003e\u003e query) {"},{"line_number":26,"context_line":"        List\u003cMap\u003cString, Object\u003e\u003e rows;"},{"line_number":27,"context_line":"        try {"},{"line_number":28,"context_line":"            rows \u003d query.list();"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_08ad7d9a","line":25,"range":{"start_line":25,"start_character":11,"end_line":25,"end_character":17},"in_reply_to":"1a95cdbc_7cb8872a","updated":"2016-10-10 17:43:52.000000000","message":"Done","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9722b0d72f24a75d4468ce78c392e3c108260acb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        } catch (UnableToExecuteStatementException e) {"},{"line_number":30,"context_line":"            throw Exceptions.unprocessableEntity(e.getCause().toString());"},{"line_number":31,"context_line":"        } catch (Exception e) {"},{"line_number":32,"context_line":"            throw e;"},{"line_number":33,"context_line":"        }"},{"line_number":34,"context_line":"        return rows;"},{"line_number":35,"context_line":"    }"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_1ccce3b9","line":32,"range":{"start_line":32,"start_character":11,"end_line":32,"end_character":20},"updated":"2016-10-10 16:00:00.000000000","message":"Since you aren\u0027t actually doing anything with e, you shouldn\u0027t catch it","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"b2c260eda491a8c2be23766134a9812ab05b5fff","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        } catch (UnableToExecuteStatementException e) {"},{"line_number":30,"context_line":"            throw Exceptions.unprocessableEntity(e.getCause().toString());"},{"line_number":31,"context_line":"        } catch (Exception e) {"},{"line_number":32,"context_line":"            throw e;"},{"line_number":33,"context_line":"        }"},{"line_number":34,"context_line":"        return rows;"},{"line_number":35,"context_line":"    }"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_28987977","line":32,"range":{"start_line":32,"start_character":11,"end_line":32,"end_character":20},"in_reply_to":"1a95cdbc_1ccce3b9","updated":"2016-10-10 17:43:52.000000000","message":"Done","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"}],"java/src/test/java/monasca/api/infrastructure/persistence/vertica/MeasurementVerticaRepositoryImplTest.java":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"31d34a898201ae2d954bc1f91fc79a940e941c71","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    db \u003d new DBI(\"jdbc:vertica://192.168.10.4/mon\", \"dbadmin\", \"password\");"},{"line_number":47,"context_line":"    handle \u003d db.open();"},{"line_number":48,"context_line":"    config \u003d new ApiConfig();"},{"line_number":49,"context_line":"    verticaUtils \u003d new VerticaUtils();"},{"line_number":50,"context_line":"    repo \u003d new MeasurementVerticaRepoImpl(db, config, verticaUtils);"},{"line_number":51,"context_line":"  }"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-java","patch_set":8,"id":"fa7ab95a_ff532637","line":49,"updated":"2016-09-01 15:34:26.000000000","message":"If the method is declared static, you won\u0027t need to create an instance.","commit_id":"a5268fb27379aa4743af86f0e37edb7d4dadfe39"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"f46edd2136bd883dc3377277e1436114d13a847f","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    db \u003d new DBI(\"jdbc:vertica://192.168.10.4/mon\", \"dbadmin\", \"password\");"},{"line_number":47,"context_line":"    handle \u003d db.open();"},{"line_number":48,"context_line":"    config \u003d new ApiConfig();"},{"line_number":49,"context_line":"    verticaUtils \u003d new VerticaUtils();"},{"line_number":50,"context_line":"    repo \u003d new MeasurementVerticaRepoImpl(db, config, verticaUtils);"},{"line_number":51,"context_line":"  }"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-java","patch_set":8,"id":"9a89bdaa_08148bf3","line":49,"in_reply_to":"fa7ab95a_ff532637","updated":"2016-09-02 20:51:16.000000000","message":"Done","commit_id":"a5268fb27379aa4743af86f0e37edb7d4dadfe39"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9722b0d72f24a75d4468ce78c392e3c108260acb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/*"},{"line_number":2,"context_line":" * (C) Copyright 2014,2016 Hewlett Packard Enterprise Development LP"},{"line_number":3,"context_line":" *"},{"line_number":4,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except"},{"line_number":5,"context_line":" * in compliance with the License. You may obtain a copy of the License at"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_3c751f63","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":68},"updated":"2016-10-10 16:00:00.000000000","message":"You haven\u0027t made any real changes to this file so you don\u0027t need to change the copyright. Drop this file from the change set","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"b2c260eda491a8c2be23766134a9812ab05b5fff","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/*"},{"line_number":2,"context_line":" * (C) Copyright 2014,2016 Hewlett Packard Enterprise Development LP"},{"line_number":3,"context_line":" *"},{"line_number":4,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except"},{"line_number":5,"context_line":" * in compliance with the License. You may obtain a copy of the License at"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_5f0add26","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":68},"in_reply_to":"1a95cdbc_3c751f63","updated":"2016-10-10 17:43:52.000000000","message":"Done","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"}],"java/src/test/java/monasca/api/infrastructure/persistence/vertica/MetricDefinitionVerticaRepositoryImplTest.java":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"31d34a898201ae2d954bc1f91fc79a940e941c71","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    db \u003d new DBI(\"jdbc:vertica://192.168.10.4/mon\", \"dbadmin\", \"password\");"},{"line_number":47,"context_line":"    handle \u003d db.open();"},{"line_number":48,"context_line":"    config \u003d new ApiConfig();"},{"line_number":49,"context_line":"    verticaUtils \u003d new VerticaUtils();"},{"line_number":50,"context_line":"    repo \u003d new MetricDefinitionVerticaRepoImpl(db, config, verticaUtils);"},{"line_number":51,"context_line":"  }"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-java","patch_set":8,"id":"fa7ab95a_3f1bce81","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":16},"updated":"2016-09-01 15:34:26.000000000","message":"Same comment as previous file.","commit_id":"a5268fb27379aa4743af86f0e37edb7d4dadfe39"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"f46edd2136bd883dc3377277e1436114d13a847f","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    db \u003d new DBI(\"jdbc:vertica://192.168.10.4/mon\", \"dbadmin\", \"password\");"},{"line_number":47,"context_line":"    handle \u003d db.open();"},{"line_number":48,"context_line":"    config \u003d new ApiConfig();"},{"line_number":49,"context_line":"    verticaUtils \u003d new VerticaUtils();"},{"line_number":50,"context_line":"    repo \u003d new MetricDefinitionVerticaRepoImpl(db, config, verticaUtils);"},{"line_number":51,"context_line":"  }"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-java","patch_set":8,"id":"9a89bdaa_28f94fc9","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":16},"in_reply_to":"fa7ab95a_3f1bce81","updated":"2016-09-02 20:51:16.000000000","message":"Done","commit_id":"a5268fb27379aa4743af86f0e37edb7d4dadfe39"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9722b0d72f24a75d4468ce78c392e3c108260acb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/*"},{"line_number":2,"context_line":" * (C) Copyright 2014,2016 Hewlett Packard Enterprise Development LP"},{"line_number":3,"context_line":" *"},{"line_number":4,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except"},{"line_number":5,"context_line":" * in compliance with the License. You may obtain a copy of the License at"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_9c6633b9","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":68},"updated":"2016-10-10 16:00:00.000000000","message":"See previous comment","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"b2c260eda491a8c2be23766134a9812ab05b5fff","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/*"},{"line_number":2,"context_line":" * (C) Copyright 2014,2016 Hewlett Packard Enterprise Development LP"},{"line_number":3,"context_line":" *"},{"line_number":4,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except"},{"line_number":5,"context_line":" * in compliance with the License. You may obtain a copy of the License at"}],"source_content_type":"text/x-java","patch_set":10,"id":"1a95cdbc_02563e05","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":68},"in_reply_to":"1a95cdbc_9c6633b9","updated":"2016-10-10 17:43:52.000000000","message":"Done","commit_id":"1fa0b22fc00650b904ac45427c2735073ef91320"}]}
