)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000013,"name":"Matt Ingenthron","email":"ingenthr@gmail.com","username":"ingenthr","avatars":[{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"0719abed38fb0f3552a03615c09dbd800fb11a04","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This changeset adds a onComplete callback to futures and executes"},{"line_number":10,"context_line":"the callback in a configurable ExecutorService. By default, this"},{"line_number":11,"context_line":"is a 2 thread fixed size thread pool, but configurable through"},{"line_number":12,"context_line":"the Factory."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I516af74918e57521542a0bad2ff7142b75ab7b13"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"44aa0ced_49d966f2","line":11,"updated":"2013-08-30 08:34:45.000000000","message":"Why 2 threads?  \n\nI may have done 2 per CPU or something like that.","commit_id":"3a2149fca7044d74b148ffc31b64155ea9f80be7"}],"src/main/java/net/spy/memcached/ConnectionFactory.java":[{"author":{"_account_id":1000013,"name":"Matt Ingenthron","email":"ingenthr@gmail.com","username":"ingenthr","avatars":[{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"0719abed38fb0f3552a03615c09dbd800fb11a04","unresolved":false,"context_lines":[{"line_number":85,"context_line":"   * Get the ExecutorService which is used to asynchronously execute listeners"},{"line_number":86,"context_line":"   * on futures."},{"line_number":87,"context_line":"   */"},{"line_number":88,"context_line":"  ExecutorService getListenerExecutorService();"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"  /**"},{"line_number":91,"context_line":"   * Create a NodeLocator instance for the given list of nodes."}],"source_content_type":"text/x-java","patch_set":10,"id":"44aa0ced_29d69ac1","line":88,"updated":"2013-08-30 08:34:45.000000000","message":"Another interface addition, so more reason for a minor.","commit_id":"3a2149fca7044d74b148ffc31b64155ea9f80be7"}],"src/main/java/net/spy/memcached/DefaultConnectionFactory.java":[{"author":{"_account_id":1000013,"name":"Matt Ingenthron","email":"ingenthr@gmail.com","username":"ingenthr","avatars":[{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"0719abed38fb0f3552a03615c09dbd800fb11a04","unresolved":false,"context_lines":[{"line_number":111,"context_line":"   * The ExecutorService in which the listener callbacks will be executed."},{"line_number":112,"context_line":"   */"},{"line_number":113,"context_line":"  public static final ExecutorService DEFAULT_LISTENER_EXECUTOR_SERVICE \u003d"},{"line_number":114,"context_line":"    Executors.newFixedThreadPool(2);"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  protected final int opQueueLen;"},{"line_number":117,"context_line":"  private final int readBufSize;"}],"source_content_type":"text/x-java","patch_set":10,"id":"44aa0ced_89e34ea6","line":114,"updated":"2013-08-30 08:34:45.000000000","message":"A constant right here?","commit_id":"3a2149fca7044d74b148ffc31b64155ea9f80be7"}],"src/main/java/net/spy/memcached/MemcachedClient.java":[{"author":{"_account_id":1000013,"name":"Matt Ingenthron","email":"ingenthr@gmail.com","username":"ingenthr","avatars":[{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"0719abed38fb0f3552a03615c09dbd800fb11a04","unresolved":false,"context_lines":[{"line_number":2074,"context_line":"    });"},{"line_number":2075,"context_line":""},{"line_number":2076,"context_line":"    return new OperationFuture\u003cBoolean\u003e(null, blatch, flushResult,"},{"line_number":2077,"context_line":"        operationTimeout, executorService) {"},{"line_number":2078,"context_line":"      @Override"},{"line_number":2079,"context_line":"      public boolean cancel(boolean ign) {"},{"line_number":2080,"context_line":"        boolean rv \u003d false;"}],"source_content_type":"text/x-java","patch_set":10,"id":"44aa0ced_a9f0ca65","line":2077,"updated":"2013-08-30 08:34:45.000000000","message":"Ugh.  Passing that thing around a lot, but I don\u0027t see another way for it.  Well, you may be able to send it over to the operation factory, then it\u0027s included from there?  I\u0027m okay with this though.","commit_id":"3a2149fca7044d74b148ffc31b64155ea9f80be7"},{"author":{"_account_id":1000327,"name":"Michael Nitschinger","email":"michael.nitschinger@couchbase.com","username":"daschl","avatars":[{"url":"https://www.gravatar.com/avatar/ca669dcaa36c077d54b96af979d77b9d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ca669dcaa36c077d54b96af979d77b9d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ca669dcaa36c077d54b96af979d77b9d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ca669dcaa36c077d54b96af979d77b9d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"839dbc2aad5d89bae4cfc0fb0825be14f33781ac","unresolved":false,"context_lines":[{"line_number":2074,"context_line":"    });"},{"line_number":2075,"context_line":""},{"line_number":2076,"context_line":"    return new OperationFuture\u003cBoolean\u003e(null, blatch, flushResult,"},{"line_number":2077,"context_line":"        operationTimeout, executorService) {"},{"line_number":2078,"context_line":"      @Override"},{"line_number":2079,"context_line":"      public boolean cancel(boolean ign) {"},{"line_number":2080,"context_line":"        boolean rv \u003d false;"}],"source_content_type":"text/x-java","patch_set":10,"id":"44aa0ced_89086e30","line":2077,"in_reply_to":"44aa0ced_a9f0ca65","updated":"2013-08-30 10:28:43.000000000","message":"the problem is that its not passed to the operation factory, but every future needs it.. we\u0027d need a future factory if we want to go down that route, but I dont think its necessary right now.. we also pass the operationTimeout around for every one.","commit_id":"3a2149fca7044d74b148ffc31b64155ea9f80be7"},{"author":{"_account_id":1000013,"name":"Matt Ingenthron","email":"ingenthr@gmail.com","username":"ingenthr","avatars":[{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"e7bf9ebb83074c27746fbe21de7a42e6191a9654","unresolved":false,"context_lines":[{"line_number":708,"context_line":"  }"},{"line_number":709,"context_line":""},{"line_number":710,"context_line":"  /**"},{"line_number":711,"context_line":"   * Perform a synchronous CAS operation with the default transcoder."},{"line_number":712,"context_line":"   *"},{"line_number":713,"context_line":"   * @param key the key"},{"line_number":714,"context_line":"   * @param casId the CAS identifier (from a gets operation)"}],"source_content_type":"text/x-java","patch_set":11,"id":"44aa0ced_f81576ef","line":711,"updated":"2013-09-02 14:21:48.000000000","message":"Did this sneak in?  Its unrelated.","commit_id":"2a9f1bd4d11444b860feeea7533509b2623a73b9"},{"author":{"_account_id":1000013,"name":"Matt Ingenthron","email":"ingenthr@gmail.com","username":"ingenthr","avatars":[{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"1f134005b3deac81e41fc6eae317ba5e019bd9e1","unresolved":false,"context_lines":[{"line_number":708,"context_line":"  }"},{"line_number":709,"context_line":""},{"line_number":710,"context_line":"  /**"},{"line_number":711,"context_line":"   * Perform a synchronous CAS operation with the default transcoder."},{"line_number":712,"context_line":"   *"},{"line_number":713,"context_line":"   * @param key the key"},{"line_number":714,"context_line":"   * @param casId the CAS identifier (from a gets operation)"}],"source_content_type":"text/x-java","patch_set":11,"id":"44aa0ced_0429fcf4","line":711,"in_reply_to":"44aa0ced_f81576ef","updated":"2013-09-04 15:36:43.000000000","message":"I saw the results of the rebase.","commit_id":"2a9f1bd4d11444b860feeea7533509b2623a73b9"}],"src/main/java/net/spy/memcached/internal/AbstractListenableFuture.java":[{"author":{"_account_id":1000013,"name":"Matt Ingenthron","email":"ingenthr@gmail.com","username":"ingenthr","avatars":[{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"67a4337fd52b17bb48b89b106e635bc78ccb5741","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    executor.submit(new Runnable() {"},{"line_number":114,"context_line":"      @Override"},{"line_number":115,"context_line":"      public void run() {"},{"line_number":116,"context_line":"        Thread.currentThread().setName(\"FutureNotifyListener\");"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        try {"},{"line_number":119,"context_line":"          listener.onComplete(future);"}],"source_content_type":"text/x-java","patch_set":13,"id":"44aa0ced_24a6b861","line":116,"updated":"2013-09-04 17:39:34.000000000","message":"Maybe better to be \"spymemcached FutureNotifyListener\"?  Or \"spymemcached future notify listener\"?","commit_id":"e21992ad975698b4326e34cc96d10525e27c860d"}],"src/main/java/net/spy/memcached/internal/BulkGetCompletionListener.java":[{"author":{"_account_id":1000013,"name":"Matt Ingenthron","email":"ingenthr@gmail.com","username":"ingenthr","avatars":[{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"0719abed38fb0f3552a03615c09dbd800fb11a04","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/**"},{"line_number":2,"context_line":" * Copyright (C) 2006-2009 Dustin Sallings"},{"line_number":3,"context_line":" * Copyright (C) 2009-2013 Couchbase, Inc."},{"line_number":4,"context_line":" *"},{"line_number":5,"context_line":" * Permission is hereby granted, free of charge, to any person obtaining a copy"}],"source_content_type":"text/x-java","patch_set":10,"id":"44aa0ced_e9ead275","line":2,"updated":"2013-08-30 08:34:45.000000000","message":"no dustin needed.","commit_id":"3a2149fca7044d74b148ffc31b64155ea9f80be7"}],"src/test/java/net/spy/memcached/internal/ListenableFutureTest.java":[{"author":{"_account_id":1000013,"name":"Matt Ingenthron","email":"ingenthr@gmail.com","username":"ingenthr","avatars":[{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/dface45e4481ef6bd571492fa3b4ef8c.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"0719abed38fb0f3552a03615c09dbd800fb11a04","unresolved":false,"context_lines":[{"line_number":39,"context_line":" */"},{"line_number":40,"context_line":"public class ListenableFutureTest {"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  private ExecutorService service \u003d Executors.newCachedThreadPool();"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"  @Test"},{"line_number":45,"context_line":"  public void verifyOnComplete() throws Exception {"}],"source_content_type":"text/x-java","patch_set":10,"id":"44aa0ced_29fdfa39","line":42,"updated":"2013-08-30 08:34:45.000000000","message":"might be nice to create this one the same way.","commit_id":"3a2149fca7044d74b148ffc31b64155ea9f80be7"}]}
