)]}'
{"bin/swift":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"21f2077e1297b7b4739ac519bb58394ac22e317c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                item \u003d self.queue.get()"},{"line_number":129,"context_line":"                if isinstance(item, StopWorkerThreadSignal):"},{"line_number":130,"context_line":"                    break"},{"line_number":131,"context_line":"            except Empty:"},{"line_number":132,"context_line":"                sleep(0.05)"},{"line_number":133,"context_line":"                continue"},{"line_number":134,"context_line":"            except:"}],"source_content_type":"text/x-swift","patch_set":3,"id":"AAAAM3%2F%2BlVM%3D","line":131,"updated":"2013-02-26 19:12:37.000000000","message":"the empty only gets raised if there is a timeout on the queue.get()","commit_id":"6cb0500c8b252432e6ed33122f016a30cceecd88"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"7e3a2aeb8e0bcabba0aae7d06765ad7922a97fcb","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                item \u003d self.queue.get()"},{"line_number":129,"context_line":"                if isinstance(item, StopWorkerThreadSignal):"},{"line_number":130,"context_line":"                    break"},{"line_number":131,"context_line":"            except Empty:"},{"line_number":132,"context_line":"                sleep(0.05)"},{"line_number":133,"context_line":"                continue"},{"line_number":134,"context_line":"            except:"}],"source_content_type":"text/x-swift","patch_set":3,"id":"AAAAM3%2F%2BlTY%3D","line":131,"in_reply_to":"AAAAM3%2F%2BlVM%3D","updated":"2013-02-26 19:35:35.000000000","message":"that is correct. This can be removed.","commit_id":"6cb0500c8b252432e6ed33122f016a30cceecd88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"21f2077e1297b7b4739ac519bb58394ac22e317c","unresolved":false,"context_lines":[{"line_number":854,"context_line":"                    segment_queue \u003d Queue(10000)"},{"line_number":855,"context_line":"                    segment_threads \u003d [QueueFunctionThread(segment_queue,"},{"line_number":856,"context_line":"                        _segment_job, create_connection()) for _junk in"},{"line_number":857,"context_line":"                        xrange(min(options.segment_threads, full_size))]"},{"line_number":858,"context_line":"                    segment \u003d 0"},{"line_number":859,"context_line":"                    segment_start \u003d 0"},{"line_number":860,"context_line":"                    while segment_start \u003c full_size:"}],"source_content_type":"text/x-swift","patch_set":3,"id":"AAAAM3%2F%2BlWk%3D","line":857,"updated":"2013-02-26 19:12:37.000000000","message":"this doesn\u0027t look right. do you mean full_size / segment_size","commit_id":"6cb0500c8b252432e6ed33122f016a30cceecd88"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"7e3a2aeb8e0bcabba0aae7d06765ad7922a97fcb","unresolved":false,"context_lines":[{"line_number":854,"context_line":"                    segment_queue \u003d Queue(10000)"},{"line_number":855,"context_line":"                    segment_threads \u003d [QueueFunctionThread(segment_queue,"},{"line_number":856,"context_line":"                        _segment_job, create_connection()) for _junk in"},{"line_number":857,"context_line":"                        xrange(min(options.segment_threads, full_size))]"},{"line_number":858,"context_line":"                    segment \u003d 0"},{"line_number":859,"context_line":"                    segment_start \u003d 0"},{"line_number":860,"context_line":"                    while segment_start \u003c full_size:"}],"source_content_type":"text/x-swift","patch_set":3,"id":"AAAAM3%2F%2BlSk%3D","line":857,"in_reply_to":"AAAAM3%2F%2BlWk%3D","updated":"2013-02-26 19:35:35.000000000","message":"this is to ensure that when you only have 1 object , you do not create 10 threads to deal with it. The way this was designed is to have one thread per\nobject, then based on if the object should be segmented, multiple threads will\nbe created in later code. Without this, it always create at least 10 threads\nwhen segment-threads is not specified (default to 10). There is no need\nfor doing that. For example, for an object, there are only three segments\nto be uploaded, without the new code, it will always create 10 threads. 7 of\nthe 10 will be basically waiting there doing nothing.","commit_id":"6cb0500c8b252432e6ed33122f016a30cceecd88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"21f2077e1297b7b4739ac519bb58394ac22e317c","unresolved":false,"context_lines":[{"line_number":1044,"context_line":""},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":1047,"context_line":"    parser \u003d OptionParser(version\u003d\u0027%prog 1.0\u0027, usage\u003d\u0027\u0027\u0027"},{"line_number":1048,"context_line":"Usage: %%prog \u003ccommand\u003e [options] [args]"},{"line_number":1049,"context_line":""},{"line_number":1050,"context_line":"Commands:"}],"source_content_type":"text/x-swift","patch_set":3,"id":"AAAAM3%2F%2BlWM%3D","line":1047,"updated":"2013-02-26 19:12:37.000000000","message":"hard-coding the version like this is bad (actually a regression)","commit_id":"6cb0500c8b252432e6ed33122f016a30cceecd88"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"7e3a2aeb8e0bcabba0aae7d06765ad7922a97fcb","unresolved":false,"context_lines":[{"line_number":1044,"context_line":""},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":1047,"context_line":"    parser \u003d OptionParser(version\u003d\u0027%prog 1.0\u0027, usage\u003d\u0027\u0027\u0027"},{"line_number":1048,"context_line":"Usage: %%prog \u003ccommand\u003e [options] [args]"},{"line_number":1049,"context_line":""},{"line_number":1050,"context_line":"Commands:"}],"source_content_type":"text/x-swift","patch_set":3,"id":"AAAAM3%2F%2BlSY%3D","line":1047,"in_reply_to":"AAAAM3%2F%2BlWM%3D","updated":"2013-02-26 19:35:35.000000000","message":"have no idea who added this line. I think this comes from some kind of merge.\nI will remove this.","commit_id":"6cb0500c8b252432e6ed33122f016a30cceecd88"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"21f2077e1297b7b4739ac519bb58394ac22e317c","unresolved":false,"context_lines":[{"line_number":1217,"context_line":"    except (SystemExit, Exception):"},{"line_number":1218,"context_line":"        for thread in threading_enumerate():"},{"line_number":1219,"context_line":"            if hasattr(thread, \u0027queue\u0027):"},{"line_number":1220,"context_line":"                #thread.queue.put(StopWorkerThreadSignal())"},{"line_number":1221,"context_line":"                pass"},{"line_number":1222,"context_line":"        raise"}],"source_content_type":"text/x-swift","patch_set":3,"id":"AAAAM3%2F%2BlWI%3D","line":1220,"updated":"2013-02-26 19:12:37.000000000","message":"why a commented out line?","commit_id":"6cb0500c8b252432e6ed33122f016a30cceecd88"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"7e3a2aeb8e0bcabba0aae7d06765ad7922a97fcb","unresolved":false,"context_lines":[{"line_number":1217,"context_line":"    except (SystemExit, Exception):"},{"line_number":1218,"context_line":"        for thread in threading_enumerate():"},{"line_number":1219,"context_line":"            if hasattr(thread, \u0027queue\u0027):"},{"line_number":1220,"context_line":"                #thread.queue.put(StopWorkerThreadSignal())"},{"line_number":1221,"context_line":"                pass"},{"line_number":1222,"context_line":"        raise"}],"source_content_type":"text/x-swift","patch_set":3,"id":"AAAAM3%2F%2BlSM%3D","line":1220,"in_reply_to":"AAAAM3%2F%2BlWI%3D","updated":"2013-02-26 19:35:35.000000000","message":"these code are no longer needed. need to be removed.","commit_id":"6cb0500c8b252432e6ed33122f016a30cceecd88"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"b7f821ed8099dedb6f9c6be68552d09b57423c82","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from os import environ, listdir, makedirs, utime, _exit as os_exit"},{"line_number":24,"context_line":"from os.path import basename, dirname, getmtime, getsize, isdir, join"},{"line_number":25,"context_line":"from Queue import Empty"},{"line_number":26,"context_line":"from Queue import PriorityQueue as Queue"},{"line_number":27,"context_line":"from random import shuffle"},{"line_number":28,"context_line":"from sys import argv, exc_info, exit, stderr, stdout"},{"line_number":29,"context_line":"from threading import current_thread, enumerate as threading_enumerate, Thread"}],"source_content_type":"text/x-swift","patch_set":9,"id":"AAAAOn%2F%2F5T0%3D","line":26,"updated":"2013-04-12 16:10:59.000000000","message":"It\u0027s a bit disingenuous to import PriorityQueue as Queue from Queue when there\u0027s also a Queue in Queue.  This will harm comprehension of the code below.\n\nPlease just import PriorityQueue from Queue (on the same line as Empty) and use it by name below.","commit_id":"44fc7961cf536d4ffa2f5a417ac248c3557ae0e7"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"b7f821ed8099dedb6f9c6be68552d09b57423c82","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            # Since the user is trying to quit by using ctrl-c, put a stop"},{"line_number":113,"context_line":"            # signal with higher priority so that the very next signal a"},{"line_number":114,"context_line":"            # thread gets from the queue will be quit signal."},{"line_number":115,"context_line":"            thread.queue.put(StopWorkerThreadSignal(), -1)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    # All worker threads now have been told to stop"},{"line_number":118,"context_line":"    # Wait for all worker threads to quit gracefully or until another ctrl-c"}],"source_content_type":"text/x-swift","patch_set":9,"id":"AAAAOn%2F%2F5TY%3D","line":115,"updated":"2013-04-12 16:10:59.000000000","message":"Queue.PriorityQueue says:\n\n  Entries are typically tuples of the form:  (priority number, data).\n\nIs there a reason you use (data, priority_number)?\n\nIn fact, now that I look again, it appears that data is StopWorkerThreadSignal() and the -1 is being assigned to the positional argument \"block\", which is probably not what\u0027s intended.","commit_id":"44fc7961cf536d4ffa2f5a417ac248c3557ae0e7"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"3acaef0057e5fa78925a3f0c22d0967c7bc72ce1","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            # Since the user is trying to quit by using ctrl-c, put a stop"},{"line_number":113,"context_line":"            # signal with higher priority so that the very next signal a"},{"line_number":114,"context_line":"            # thread gets from the queue will be quit signal."},{"line_number":115,"context_line":"            thread.queue.put(StopWorkerThreadSignal(), -1)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    # All worker threads now have been told to stop"},{"line_number":118,"context_line":"    # Wait for all worker threads to quit gracefully or until another ctrl-c"}],"source_content_type":"text/x-swift","patch_set":9,"id":"AAAAOn%2F%2F47k%3D","line":115,"in_reply_to":"AAAAOn%2F%2F5R0%3D","updated":"2013-04-12 20:45:15.000000000","message":"But, most curiously, this:\n\n from Queue import PriorityQueue\n\n def myfunc():\n     print \u0027something\u0027\n\n q \u003d PriorityQueue(100)\n\n q.put(\u00279000\u0027)    # use default priority\n q.put(\u00271222\u0027, 2) # use lower priority\n q.put(\u00272111\u0027, 1)\n q.put(\u00278-111\u0027, -1)\n q.put(myfunc, -2) # use higher priority.\n print q.get(), q.get(), q.get(), q.get()\n\nprints:\n\n \u003cfunction myfunc at 0x1004429b0\u003e 1222 2111 8-111 9000\n\nSo I believe you can see that only your first value (the strings) are getting stored by the PriorityQueue, and they are sorting by their (string) values.  Those integers you\u0027re passing in are irrelevant.\n\nIn contrast to the above, if you do what the documentation says, you get the desired results:\n\n from Queue import PriorityQueue\n\n def myfunc():\n     print \u0027something\u0027\n\n q \u003d PriorityQueue(100)\n\n q.put((0, \u00279000\u0027))    # use default priority\n q.put((2, \u00271222\u0027)) # use lower priority\n q.put((1, \u00272111\u0027))\n q.put((-1, \u00278-111\u0027))\n q.put((-2, myfunc)) # use higher priority.\n print q.get(), q.get(), q.get(), q.get(), q.get()\n\n (-2, \u003cfunction myfunc at 0x1004419b0\u003e) (-1, \u00278-111\u0027) (0, \u00279000\u0027) (1, \u00272111\u0027) (2, \u00271222\u0027)\n\nObviously, since you\u0027re storing a tuple and you only really want the value when you get something out of the queue, you have to remember to take the \"oneth\" ([1]) element of what comes out of the queue as the actual piece of interest.","commit_id":"44fc7961cf536d4ffa2f5a417ac248c3557ae0e7"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"30b9f75fc4288b77c2af50beca980d6c8f79e5d9","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            # Since the user is trying to quit by using ctrl-c, put a stop"},{"line_number":113,"context_line":"            # signal with higher priority so that the very next signal a"},{"line_number":114,"context_line":"            # thread gets from the queue will be quit signal."},{"line_number":115,"context_line":"            thread.queue.put(StopWorkerThreadSignal(), -1)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    # All worker threads now have been told to stop"},{"line_number":118,"context_line":"    # Wait for all worker threads to quit gracefully or until another ctrl-c"}],"source_content_type":"text/x-swift","patch_set":9,"id":"AAAAOn%2F%2F5R0%3D","line":115,"in_reply_to":"AAAAOn%2F%2F5TY%3D","updated":"2013-04-12 16:39:26.000000000","message":"Darrell, try the following code.\n\nfrom Queue import PriorityQueue\n\ndef myfunc():\n    print \u0027something\u0027\n    \nq \u003d PriorityQueue(100)\nq.put(\u00270000\u0027)    # use default priority\nq.put(\u00272222\u0027, 2) # use lower priority\nq.put(\u00271111\u0027, 1)\nq.put(\u0027-111\u0027, -1)\nq.put(myfunc, -2) # use higher priority.\n\nprint q.get(), q.get(), q.get(), q.get()\n\nThe results will be \n\u003cfunction myfunc at 0x0000000002F9E128\u003e -111 0000 1111\n\nWhich is what needs to be.\nif it behaves as you indicated, the get method won\u0027t return the strings and fun\nit would return the number. I do not know why the doc says the block\u003dtrue\nfor the second parameter. Probably wrong doc.\n\nHave you tried the patch?","commit_id":"44fc7961cf536d4ffa2f5a417ac248c3557ae0e7"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"7c918163d6a83fba5938e4ed5e496536cdbdbeb6","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"def immediate_exit(signum, frame):"},{"line_number":130,"context_line":"    stderr.write(\u0027getting called\u0027)"},{"line_number":131,"context_line":"    os_exit(2)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""}],"source_content_type":"text/x-swift","patch_set":10,"id":"AAAAOn%2F%2F4hg%3D","line":130,"updated":"2013-04-14 00:34:21.000000000","message":"debugging print left in?","commit_id":"dcf98a8d3323427379483bcfc00b8239635f66e7"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"66153dc6a4c6a28a521b0f26dd4c59b91a00972e","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"def immediate_exit(signum, frame):"},{"line_number":130,"context_line":"    stderr.write(\u0027getting called\u0027)"},{"line_number":131,"context_line":"    os_exit(2)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""}],"source_content_type":"text/x-swift","patch_set":10,"id":"AAAAOn%2F%2F4U0%3D","line":130,"in_reply_to":"AAAAOn%2F%2F4hg%3D","updated":"2013-04-15 01:58:06.000000000","message":"Done","commit_id":"dcf98a8d3323427379483bcfc00b8239635f66e7"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"7c918163d6a83fba5938e4ed5e496536cdbdbeb6","unresolved":false,"context_lines":[{"line_number":1327,"context_line":"        # has to wait. Only when there are main, error and print thread left"},{"line_number":1328,"context_line":"        # the main thread can proceed to finish up."},{"line_number":1329,"context_line":"        while (len(threading_enumerate()) \u003e 3 or not error_queue.empty() or"},{"line_number":1330,"context_line":"               not error_queue.empty()):"},{"line_number":1331,"context_line":"            sleep(0.5)"},{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"        # Shutdown the error thread and wait for all the errors to be"}],"source_content_type":"text/x-swift","patch_set":10,"id":"AAAAOn%2F%2F4g4%3D","line":1330,"updated":"2013-04-14 00:34:21.000000000","message":"is one of those \"error_queue\"s there supposed to be \"print_queue\"?","commit_id":"dcf98a8d3323427379483bcfc00b8239635f66e7"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"66153dc6a4c6a28a521b0f26dd4c59b91a00972e","unresolved":false,"context_lines":[{"line_number":1327,"context_line":"        # has to wait. Only when there are main, error and print thread left"},{"line_number":1328,"context_line":"        # the main thread can proceed to finish up."},{"line_number":1329,"context_line":"        while (len(threading_enumerate()) \u003e 3 or not error_queue.empty() or"},{"line_number":1330,"context_line":"               not error_queue.empty()):"},{"line_number":1331,"context_line":"            sleep(0.5)"},{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"        # Shutdown the error thread and wait for all the errors to be"}],"source_content_type":"text/x-swift","patch_set":10,"id":"AAAAOn%2F%2F4Uw%3D","line":1330,"in_reply_to":"AAAAOn%2F%2F4g4%3D","updated":"2013-04-15 01:58:06.000000000","message":"Done","commit_id":"dcf98a8d3323427379483bcfc00b8239635f66e7"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"058a1d85b1994b012e01af8f914637b0ff0094a8","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    handlers will get called."},{"line_number":93,"context_line":"    \"\"\""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    signal.signal(signum, immediate_exit)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    stderr.write(\"Attempting graceful exit. \""},{"line_number":98,"context_line":"                 \"Press Ctrl-C again to exit immediately.\\n\")"}],"source_content_type":"text/x-swift","patch_set":11,"id":"AAAAOn%2F%2Fp0o%3D","line":95,"updated":"2013-04-30 14:48:50.000000000","message":"This blocks the main thread waiting for another signal which means the sleep(0.5) which got interrupted by the first Ctrl-C will never exit and that while loop will not keep \"running\" and the process just hangs awaiting another signal.\n\nWhy did you add this line and can you just take it back out?  Graceful exit seems to work fine without it.","commit_id":"18cb925ca8447de013afd6aba5422868b8324867"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"6c46c1e18f77972b321b070177a3e34ac4d2ea34","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        # If not all the worker threads have finished, then the main thread"},{"line_number":1326,"context_line":"        # has to wait. Only when there are main, error and print thread left"},{"line_number":1327,"context_line":"        # the main thread can proceed to finish up."},{"line_number":1328,"context_line":"        while (len(threading_enumerate()) \u003e 3 or not error_queue.empty() or"},{"line_number":1329,"context_line":"               not print_queue.empty()):"},{"line_number":1330,"context_line":"            sleep(0.5)"},{"line_number":1331,"context_line":""}],"source_content_type":"text/x-swift","patch_set":11,"id":"AAAAOn%2F%2Fpzk%3D","line":1328,"updated":"2013-04-30 14:57:40.000000000","message":"If any QueueThread is dead, the number of elements in its queue is irrelevant, so this while loop should not keep executing if print_thread and error_thread are dead but there are still items in either of their queues.","commit_id":"18cb925ca8447de013afd6aba5422868b8324867"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"60c5a555b33971da1a1a08117d547895a02a1401","unresolved":false,"context_lines":[{"line_number":1328,"context_line":""},{"line_number":1329,"context_line":"        if error_count:"},{"line_number":1330,"context_line":"            exit(1)"},{"line_number":1331,"context_line":"    except (SystemExit, Exception):"},{"line_number":1332,"context_line":"        raise"}],"source_content_type":"text/x-swift","patch_set":18,"id":"AAAAPH%2F%2F2LY%3D","line":1331,"updated":"2013-05-21 20:12:46.000000000","message":"If the except of a try/except just re-raises, you should be able to just remove the whole try/except and get the same behavior more straightforwardly.","commit_id":"239c9fc752c6471878c376c13f42d6d35917a26e"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"a8087eccd0d6e3a484465c2142bc5d96061e86e7","unresolved":false,"context_lines":[{"line_number":1328,"context_line":""},{"line_number":1329,"context_line":"        if error_count:"},{"line_number":1330,"context_line":"            exit(1)"},{"line_number":1331,"context_line":"    except (SystemExit, Exception):"},{"line_number":1332,"context_line":"        raise"}],"source_content_type":"text/x-swift","patch_set":18,"id":"AAAAPH%2F%2FwJc%3D","line":1331,"in_reply_to":"AAAAPH%2F%2F1Uo%3D","updated":"2013-05-23 20:31:27.000000000","message":"I just mean that any code like this:\n\n  try:\n      A\n  except ...:\n      raise\n\nIs equivalent to this:\n\n  A\n\nDoes that make sense?","commit_id":"239c9fc752c6471878c376c13f42d6d35917a26e"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"075a703881e3b6e5e923a0ee2241a59975ab202a","unresolved":false,"context_lines":[{"line_number":1328,"context_line":""},{"line_number":1329,"context_line":"        if error_count:"},{"line_number":1330,"context_line":"            exit(1)"},{"line_number":1331,"context_line":"    except (SystemExit, Exception):"},{"line_number":1332,"context_line":"        raise"}],"source_content_type":"text/x-swift","patch_set":18,"id":"AAAAPH%2F%2F1Uo%3D","line":1331,"in_reply_to":"AAAAPH%2F%2F2LY%3D","updated":"2013-05-23 20:12:42.000000000","message":"Darrell, can you provide a little more detail regarding this? Do you mean to\nhave the nested try/catch to be collapsed into one?","commit_id":"239c9fc752c6471878c376c13f42d6d35917a26e"}]}
