)]}'
{"Engine/SDaemon/src/com/ibm/storlet/daemon/SCancelTask.java":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"24cdbf3bf13e2f5142d101febab679194eb203b9","unresolved":false,"context_lines":[{"line_number":62,"context_line":"\t\t} catch (IOException e) {"},{"line_number":63,"context_line":"\t\t\te.printStackTrace();"},{"line_number":64,"context_line":"\t\t\tbStatus \u003d false;"},{"line_number":65,"context_line":"\t\t} finally {"},{"line_number":66,"context_line":"\t\t\ttry {"},{"line_number":67,"context_line":"\t\t\t\tthis.sOut_.close();"},{"line_number":68,"context_line":"\t\t\t} catch (IOException e) {"},{"line_number":69,"context_line":"\t\t\t}"},{"line_number":70,"context_line":"\t\t}"},{"line_number":71,"context_line":"\t\treturn bStatus;"},{"line_number":72,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":6,"id":"9a68dd71_a69d430c","line":69,"range":{"start_line":65,"start_character":0,"end_line":69,"end_character":4},"updated":"2016-01-26 10:39:09.000000000","message":"This change has no effect in my env, so should be removed later.","commit_id":"32ff414b21234526c700e6be0b2bc42b3822fd12"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f3c6823abdd129952585fe4343e2139829953be0","unresolved":false,"context_lines":[{"line_number":62,"context_line":"\t\t} catch (IOException e) {"},{"line_number":63,"context_line":"\t\t\te.printStackTrace();"},{"line_number":64,"context_line":"\t\t\tbStatus \u003d false;"},{"line_number":65,"context_line":"\t\t} finally {"},{"line_number":66,"context_line":"\t\t\ttry {"},{"line_number":67,"context_line":"\t\t\t\tthis.sOut_.close();"},{"line_number":68,"context_line":"\t\t\t} catch (IOException e) {"},{"line_number":69,"context_line":"\t\t\t}"},{"line_number":70,"context_line":"\t\t}"},{"line_number":71,"context_line":"\t\treturn bStatus;"},{"line_number":72,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":6,"id":"7a5de9d1_be375faf","line":69,"range":{"start_line":65,"start_character":0,"end_line":69,"end_character":4},"in_reply_to":"9a68dd71_a69d430c","updated":"2016-01-28 06:05:59.000000000","message":"In cancel task, write fd is closed by middleware, but I think we should keep this closing in SDaemon, to make sure it get closed.","commit_id":"32ff414b21234526c700e6be0b2bc42b3822fd12"}],"Engine/SDaemon/src/com/ibm/storlet/daemon/SDaemon.java":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"24cdbf3bf13e2f5142d101febab679194eb203b9","unresolved":false,"context_lines":[{"line_number":234,"context_line":"\t\t\t\tlogger_.trace(strStorletName_ + \": problem returning taskId \""},{"line_number":235,"context_line":"\t\t\t\t\t\t+ taskId + \": \" + e.toString());"},{"line_number":236,"context_line":"\t\t\t\tbStatus \u003d false;"},{"line_number":237,"context_line":"\t\t\t} finally {"},{"line_number":238,"context_line":"\t\t\t\ttry{"},{"line_number":239,"context_line":"\t\t\t\t\ttaskIdOut.close();"},{"line_number":240,"context_line":"\t\t\t\t} catch (IOException e) {"},{"line_number":241,"context_line":"\t\t\t\t}"},{"line_number":242,"context_line":"\t\t\t}"},{"line_number":243,"context_line":"\t\t} else if (sTask instanceof SDescriptorTask) {"},{"line_number":244,"context_line":"\t\t\tlogger_.trace(strStorletName_ + \": Got Descriptor command\");"}],"source_content_type":"text/x-java","patch_set":6,"id":"9a68dd71_66af4b2c","line":241,"range":{"start_line":237,"start_character":0,"end_line":241,"end_character":5},"updated":"2016-01-26 10:39:09.000000000","message":"ditto","commit_id":"32ff414b21234526c700e6be0b2bc42b3822fd12"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f3c6823abdd129952585fe4343e2139829953be0","unresolved":false,"context_lines":[{"line_number":234,"context_line":"\t\t\t\tlogger_.trace(strStorletName_ + \": problem returning taskId \""},{"line_number":235,"context_line":"\t\t\t\t\t\t+ taskId + \": \" + e.toString());"},{"line_number":236,"context_line":"\t\t\t\tbStatus \u003d false;"},{"line_number":237,"context_line":"\t\t\t} finally {"},{"line_number":238,"context_line":"\t\t\t\ttry{"},{"line_number":239,"context_line":"\t\t\t\t\ttaskIdOut.close();"},{"line_number":240,"context_line":"\t\t\t\t} catch (IOException e) {"},{"line_number":241,"context_line":"\t\t\t\t}"},{"line_number":242,"context_line":"\t\t\t}"},{"line_number":243,"context_line":"\t\t} else if (sTask instanceof SDescriptorTask) {"},{"line_number":244,"context_line":"\t\t\tlogger_.trace(strStorletName_ + \": Got Descriptor command\");"}],"source_content_type":"text/x-java","patch_set":6,"id":"7a5de9d1_be5e7fe7","line":241,"range":{"start_line":237,"start_character":0,"end_line":241,"end_character":5},"in_reply_to":"9a68dd71_66af4b2c","updated":"2016-01-28 06:05:59.000000000","message":"Done\n\nThis is what we need to close leaked task id pipe, so should not be removed.","commit_id":"32ff414b21234526c700e6be0b2bc42b3822fd12"},{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"e125eb336771e3a321b63bd9845f974dd7cb42c2","unresolved":false,"context_lines":[{"line_number":236,"context_line":"\t\t\t\tbStatus \u003d false;"},{"line_number":237,"context_line":"\t\t\t} finally {"},{"line_number":238,"context_line":"\t\t\t\ttry{"},{"line_number":239,"context_line":"\t\t\t\t\ttaskIdOut.close();"},{"line_number":240,"context_line":"\t\t\t\t} catch (IOException e) {"},{"line_number":241,"context_line":"\t\t\t\t}"},{"line_number":242,"context_line":"\t\t\t}"}],"source_content_type":"text/x-java","patch_set":7,"id":"7a5de9d1_92add933","line":239,"updated":"2016-01-27 14:35:43.000000000","message":"Line 219 above, causes the \"run\" method to execute, where we also close the taskID. It might not hurt to have them both, but it seems that here is a more appropriate place.\nThis is not true for the other streams as they are being used by the storlet invoke code.","commit_id":"f76b58f0b6ee07c63e9e8023366457fb3ad390e5"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"12307a41c6a7bdefff8efacc019413f52336f504","unresolved":false,"context_lines":[{"line_number":236,"context_line":"\t\t\t\tbStatus \u003d false;"},{"line_number":237,"context_line":"\t\t\t} finally {"},{"line_number":238,"context_line":"\t\t\t\ttry{"},{"line_number":239,"context_line":"\t\t\t\t\ttaskIdOut.close();"},{"line_number":240,"context_line":"\t\t\t\t} catch (IOException e) {"},{"line_number":241,"context_line":"\t\t\t\t}"},{"line_number":242,"context_line":"\t\t\t}"}],"source_content_type":"text/x-java","patch_set":7,"id":"7a5de9d1_00cf3357","line":239,"in_reply_to":"7a5de9d1_92add933","updated":"2016-01-28 01:56:46.000000000","message":"Done\n\nYou are right, and we shouldn\u0027t close task ID in Execution Task. (That was added in the way to find leaked fd...)\n\nI\u0027m also planning refactoring to move open/close functions into task classes. It helps us to manage the state of streams easily.","commit_id":"f76b58f0b6ee07c63e9e8023366457fb3ad390e5"}],"Engine/SDaemon/src/com/ibm/storlet/daemon/SExecutionTask.java":[{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"e125eb336771e3a321b63bd9845f974dd7cb42c2","unresolved":false,"context_lines":[{"line_number":113,"context_line":"\t\t\tstorletLogger_.emitLog(e.getMessage());"},{"line_number":114,"context_line":"\t\t} finally {"},{"line_number":115,"context_line":"\t\t\tstorletLogger_.Flush();"},{"line_number":116,"context_line":"\t\t\tstorletLogger_.close();"},{"line_number":117,"context_line":"\t\t\ttaskIdOut_.close();"},{"line_number":118,"context_line":"\t\t}"},{"line_number":119,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":7,"id":"7a5de9d1_7b74c3ce","line":116,"updated":"2016-01-27 14:35:43.000000000","message":"Note that here is why the functional test fails:\nneed to wrap the close call with try catch IOException.\nNote that you can run from root \"ant build_engine\" to compile all engine code.\n\nI wonder if we also need to go over the inStreams and Outstreams and try and close them as well. With this in mind I also wonder whether it is something we would also like to add in a finalyze() method of all the above classes","commit_id":"f76b58f0b6ee07c63e9e8023366457fb3ad390e5"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"12307a41c6a7bdefff8efacc019413f52336f504","unresolved":false,"context_lines":[{"line_number":113,"context_line":"\t\t\tstorletLogger_.emitLog(e.getMessage());"},{"line_number":114,"context_line":"\t\t} finally {"},{"line_number":115,"context_line":"\t\t\tstorletLogger_.Flush();"},{"line_number":116,"context_line":"\t\t\tstorletLogger_.close();"},{"line_number":117,"context_line":"\t\t\ttaskIdOut_.close();"},{"line_number":118,"context_line":"\t\t}"},{"line_number":119,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":7,"id":"7a5de9d1_c0c11b30","line":116,"in_reply_to":"7a5de9d1_7b74c3ce","updated":"2016-01-28 01:56:46.000000000","message":"Thank you for your help. I\u0027m so used to python, and sometimes miss some rules about java... :-(","commit_id":"f76b58f0b6ee07c63e9e8023366457fb3ad390e5"}],"Engine/SDaemon/src/com/ibm/storlet/daemon/SPingTask.java":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"24cdbf3bf13e2f5142d101febab679194eb203b9","unresolved":false,"context_lines":[{"line_number":54,"context_line":"\t\t} catch (IOException e) {"},{"line_number":55,"context_line":"\t\t\te.printStackTrace();"},{"line_number":56,"context_line":"\t\t\tbStatus \u003d false;"},{"line_number":57,"context_line":"\t\t} finally {"},{"line_number":58,"context_line":"\t\t\ttry {"},{"line_number":59,"context_line":"\t\t\t\tthis.sOut_.close();"},{"line_number":60,"context_line":"\t\t\t} catch (IOException e) {"},{"line_number":61,"context_line":"\t\t\t}"},{"line_number":62,"context_line":"\t\t}"},{"line_number":63,"context_line":"\t\treturn bStatus;"},{"line_number":64,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":6,"id":"9a68dd71_86feff36","line":61,"range":{"start_line":57,"start_character":0,"end_line":61,"end_character":4},"updated":"2016-01-26 10:39:09.000000000","message":"ditto","commit_id":"32ff414b21234526c700e6be0b2bc42b3822fd12"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f3c6823abdd129952585fe4343e2139829953be0","unresolved":false,"context_lines":[{"line_number":54,"context_line":"\t\t} catch (IOException e) {"},{"line_number":55,"context_line":"\t\t\te.printStackTrace();"},{"line_number":56,"context_line":"\t\t\tbStatus \u003d false;"},{"line_number":57,"context_line":"\t\t} finally {"},{"line_number":58,"context_line":"\t\t\ttry {"},{"line_number":59,"context_line":"\t\t\t\tthis.sOut_.close();"},{"line_number":60,"context_line":"\t\t\t} catch (IOException e) {"},{"line_number":61,"context_line":"\t\t\t}"},{"line_number":62,"context_line":"\t\t}"},{"line_number":63,"context_line":"\t\treturn bStatus;"},{"line_number":64,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":6,"id":"7a5de9d1_de3c9b95","line":61,"range":{"start_line":57,"start_character":0,"end_line":61,"end_character":4},"in_reply_to":"9a68dd71_86feff36","updated":"2016-01-28 06:05:59.000000000","message":"ditto again","commit_id":"32ff414b21234526c700e6be0b2bc42b3822fd12"}],"Engine/swift/storlet_gateway/storlet_docker_gateway.py":[{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"e125eb336771e3a321b63bd9845f974dd7cb42c2","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            return self"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        def read_with_timeout(self, size):"},{"line_number":139,"context_line":"            # TODO(takashi): Why don\u0027t we use \"with\" here?"},{"line_number":140,"context_line":"            timeout \u003d Timeout(self.timeout)"},{"line_number":141,"context_line":"            try:"},{"line_number":142,"context_line":"                chunk \u003d os.read(self.obj_data, size)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_db5db7ed","line":139,"updated":"2016-01-27 14:35:43.000000000","message":"No special reason :-)","commit_id":"f76b58f0b6ee07c63e9e8023366457fb3ad390e5"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"12307a41c6a7bdefff8efacc019413f52336f504","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            return self"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        def read_with_timeout(self, size):"},{"line_number":139,"context_line":"            # TODO(takashi): Why don\u0027t we use \"with\" here?"},{"line_number":140,"context_line":"            timeout \u003d Timeout(self.timeout)"},{"line_number":141,"context_line":"            try:"},{"line_number":142,"context_line":"                chunk \u003d os.read(self.obj_data, size)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a5de9d1_20e7cfe5","line":139,"in_reply_to":"7a5de9d1_db5db7ed","updated":"2016-01-28 01:56:46.000000000","message":"Done\n\nI\u0027ll do that in another patch, so in this patch I mark this as done here.","commit_id":"f76b58f0b6ee07c63e9e8023366457fb3ad390e5"}]}
