)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f8d241a3495e2a3fd3c82dc77581a25e6b23c299","unresolved":true,"context_lines":[{"line_number":15,"context_line":"differences, rather than polymorphic adaptation of behavior based on how"},{"line_number":16,"context_line":"their initialized or what we put into them."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I13bdef7e9c63325d93076b6a172a7c3ee06b2e5c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"d707ede1_8f211058","line":18,"updated":"2021-01-21 19:32:28.000000000","message":"Related-Change-Id: I6236f20d736c119947e50540b16d212dba1ec20c","commit_id":"bd05bc786efc0e8065d9d17bd3707df7ac7c629e"}],"swift/proxy/controllers/obj.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f8d241a3495e2a3fd3c82dc77581a25e6b23c299","unresolved":true,"context_lines":[{"line_number":1998,"context_line":"        self.timestamp \u003d timestamp"},{"line_number":1999,"context_line":"        # if no timestamp when init\u0027d then the bucket will update its timestamp"},{"line_number":2000,"context_line":"        # as responses are added"},{"line_number":2001,"context_line":"        self.update_timestamp \u003d timestamp is None"},{"line_number":2002,"context_line":"        self.gets \u003d collections.defaultdict(list)"},{"line_number":2003,"context_line":"        self.alt_nodes \u003d collections.defaultdict(list)"},{"line_number":2004,"context_line":"        self._durable \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"64949a81_f1c2a7a0","side":"PARENT","line":2001,"updated":"2021-01-21 19:32:28.000000000","message":"The existance of this state begged the question \"when do we initialize w/o a timestamp\" - and then answer is \"when this is an error bucket\"\n\nI think the diff here makes it more obvious (easier to maintain and extend - if the behavior continues to diverge)","commit_id":"cc3fa3cc0fa51df0e3eb872744da428a7e742cea"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ec19518c59a9f825e71f3bb227f61b2b609b7061","unresolved":true,"context_lines":[{"line_number":2339,"context_line":"            return nodes.pop(0).copy()"},{"line_number":2340,"context_line":""},{"line_number":2341,"context_line":""},{"line_number":2342,"context_line":"class ECGetErrorBucket(ECGetResponseBucket):"},{"line_number":2343,"context_line":"    \"\"\""},{"line_number":2344,"context_line":"    A helper class to encapsulate the properties of buckets in which fragment"},{"line_number":2345,"context_line":"    getters have returned errors"}],"source_content_type":"text/x-python","patch_set":1,"id":"936fa08a_80bfb3dd","line":2342,"updated":"2021-01-21 20:11:53.000000000","message":"the worst criticism I can come up with is that I\u0027d prefer the subclass to come right after its superclass in the file\n\n(which is like saying, this seems fine!)","commit_id":"bd05bc786efc0e8065d9d17bd3707df7ac7c629e"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"74ad847603a2545e90b6029ca10cc966d725ef1d","unresolved":true,"context_lines":[{"line_number":2339,"context_line":"            return nodes.pop(0).copy()"},{"line_number":2340,"context_line":""},{"line_number":2341,"context_line":""},{"line_number":2342,"context_line":"class ECGetErrorBucket(ECGetResponseBucket):"},{"line_number":2343,"context_line":"    \"\"\""},{"line_number":2344,"context_line":"    A helper class to encapsulate the properties of buckets in which fragment"},{"line_number":2345,"context_line":"    getters have returned errors"}],"source_content_type":"text/x-python","patch_set":1,"id":"7e836c5c_dc68a1a7","line":2342,"in_reply_to":"936fa08a_80bfb3dd","updated":"2021-01-21 20:39:29.000000000","message":"oh yeah, I agree.  this is gross and was an accident.  #willfix","commit_id":"bd05bc786efc0e8065d9d17bd3707df7ac7c629e"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f8d241a3495e2a3fd3c82dc77581a25e6b23c299","unresolved":true,"context_lines":[{"line_number":2358,"context_line":"        fragments with the same timestamp, or for errors with the same status."},{"line_number":2359,"context_line":"        \"\"\""},{"line_number":2360,"context_line":"        if is_success(getter.last_status):"},{"line_number":2361,"context_line":"            raise ValueError(\"Invalid error response: %s\" % getter.last_status)"},{"line_number":2362,"context_line":"        headers \u003d getter.last_headers"},{"line_number":2363,"context_line":"        timestamp_str \u003d headers.get(\u0027X-Backend-Timestamp\u0027,"},{"line_number":2364,"context_line":"                                    headers.get(\u0027X-Timestamp\u0027))"}],"source_content_type":"text/x-python","patch_set":1,"id":"acc0c9ca_3508c7d8","line":2361,"updated":"2021-01-21 19:32:28.000000000","message":"this is never done in practice, but it\u0027s also not even covered by unittests...","commit_id":"bd05bc786efc0e8065d9d17bd3707df7ac7c629e"}]}
