)]}'
{"/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":"46e08d4ee40d955e4d1f75a8f33ea0843c23896f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Removed all Membase and Couchbase support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We are splitting up this project into three seperate projects."},{"line_number":10,"context_line":"Each project will support a specific database."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I383dfcde9b5c1fbd0225e5a5e8ee001e8e3ada60"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAABkn%2F%2F6uE%3D","line":9,"updated":"2011-12-05 21:13:34.000000000","message":"I think it\u0027ll actually be two separate projects.","commit_id":"a4073ca20e3267b15b87a909dbecc0ef681c6f23"},{"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":"1fc15c2e5e832c55a1e8fec8d5b6fa57498c7caa","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Removed all Membase and Couchbase support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We are splitting up this project into two seperate projects."},{"line_number":10,"context_line":"project will support memcached and the other will support Membase"},{"line_number":11,"context_line":"and Couchbase."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I383dfcde9b5c1fbd0225e5a5e8ee001e8e3ada60"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAABkn%2F%2F4G8%3D","line":10,"updated":"2012-01-02 20:48:20.000000000","message":"Missing the word This here.","commit_id":"eee10b76fc9eb21a255b327618e796abe74beb36"}],"src/main/java/net/spy/memcached/AddrUtil.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":"46e08d4ee40d955e4d1f75a8f33ea0843c23896f","unresolved":false,"context_lines":[{"line_number":95,"context_line":"  }"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  public static List\u003cInetSocketAddress\u003e"},{"line_number":98,"context_line":"  getAddressesFromURL(List\u003cURL\u003e servers) {"},{"line_number":99,"context_line":"    ArrayList\u003cInetSocketAddress\u003e addrs \u003d"},{"line_number":100,"context_line":"      new ArrayList\u003cInetSocketAddress\u003e(servers.size());"},{"line_number":101,"context_line":"    for (URL server : servers) {"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABkn%2F%2F6uA%3D","line":98,"updated":"2011-12-05 21:13:34.000000000","message":"doesn\u0027t really belong in this commit, but it\u0027s okay.","commit_id":"a4073ca20e3267b15b87a909dbecc0ef681c6f23"},{"author":{"_account_id":1000136,"name":"Mike Wiederhold","email":"mike@couchbase.com","username":"mikewied","avatars":[{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"6df9913867b6a2cf3634570f4edaac2d3facdcb8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"  }"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  public static List\u003cInetSocketAddress\u003e"},{"line_number":98,"context_line":"  getAddressesFromURL(List\u003cURL\u003e servers) {"},{"line_number":99,"context_line":"    ArrayList\u003cInetSocketAddress\u003e addrs \u003d"},{"line_number":100,"context_line":"      new ArrayList\u003cInetSocketAddress\u003e(servers.size());"},{"line_number":101,"context_line":"    for (URL server : servers) {"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABkn%2F%2F6tY%3D","line":98,"in_reply_to":"AAABkn%2F%2F6uA%3D","updated":"2011-12-05 21:26:06.000000000","message":"Yeah, but I want to leave if for now. The reason is that the Couchbase project would have to have it\u0027s own separate AddrUtil class (maybe CouchbaseAddrUtil). I also left a few operations in Spymemcached that memcached doesn\u0027t support (like getl). In the future I think we will have a better idea on what the right thing to do is.","commit_id":"a4073ca20e3267b15b87a909dbecc0ef681c6f23"}],"src/main/java/net/spy/memcached/KetamaNodeLocator.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":"46e08d4ee40d955e4d1f75a8f33ea0843c23896f","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  }"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"  @Override"},{"line_number":154,"context_line":"  public void updateLocator(List\u003cMemcachedNode\u003e nodes) {"},{"line_number":155,"context_line":"    setKetamaNodes(nodes);"},{"line_number":156,"context_line":"  }"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABkn%2F%2F6t8%3D","line":154,"updated":"2011-12-05 21:13:34.000000000","message":"How will this work in situations where we do want to reconfigure the KetamaNodeLocator.  I think I\u0027m going to have to see the other side of the commits.","commit_id":"a4073ca20e3267b15b87a909dbecc0ef681c6f23"},{"author":{"_account_id":1000136,"name":"Mike Wiederhold","email":"mike@couchbase.com","username":"mikewied","avatars":[{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"6df9913867b6a2cf3634570f4edaac2d3facdcb8","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  }"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"  @Override"},{"line_number":154,"context_line":"  public void updateLocator(List\u003cMemcachedNode\u003e nodes) {"},{"line_number":155,"context_line":"    setKetamaNodes(nodes);"},{"line_number":156,"context_line":"  }"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABkn%2F%2F6tQ%3D","line":154,"in_reply_to":"AAABkn%2F%2F6t8%3D","updated":"2011-12-05 21:26:06.000000000","message":"From MembaseConnection:\n\n      if (locator instanceof VBucketNodeLocator) {\n        ((VBucketNodeLocator)locator).updateLocator(mergedNodes,\n            bucket.getConfig());\n      } else {\n        locator.updateLocator(mergedNodes);\n      }\n\nThis to me is better since all of those other NodeLocators don\u0027t really have any idea of what a Config is. I remember when the change that did this went through and I personally didn\u0027t like it, but couldn\u0027t propose a better fix at the time.","commit_id":"a4073ca20e3267b15b87a909dbecc0ef681c6f23"}],"src/main/java/net/spy/memcached/MemcachedConnection.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":"46e08d4ee40d955e4d1f75a8f33ea0843c23896f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"/**"},{"line_number":62,"context_line":" * Connection to a cluster of memcached servers."},{"line_number":63,"context_line":" */"},{"line_number":64,"context_line":"public class MemcachedConnection extends SpyThread {"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"  // The number of empty selects we\u0027ll allow before assuming we may have"},{"line_number":67,"context_line":"  // missed one and should check the current selectors. This generally"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABkn%2F%2F6t0%3D","line":64,"updated":"2011-12-05 21:13:34.000000000","message":"Hm, now I\u0027m curious how this will come together.  I guess by just extending it?","commit_id":"a4073ca20e3267b15b87a909dbecc0ef681c6f23"},{"author":{"_account_id":1000136,"name":"Mike Wiederhold","email":"mike@couchbase.com","username":"mikewied","avatars":[{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/337c57dab3946ecdea245eaabfe99a17.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"6df9913867b6a2cf3634570f4edaac2d3facdcb8","unresolved":false,"context_lines":[{"line_number":61,"context_line":"/**"},{"line_number":62,"context_line":" * Connection to a cluster of memcached servers."},{"line_number":63,"context_line":" */"},{"line_number":64,"context_line":"public class MemcachedConnection extends SpyThread {"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"  // The number of empty selects we\u0027ll allow before assuming we may have"},{"line_number":67,"context_line":"  // missed one and should check the current selectors. This generally"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABkn%2F%2F6tM%3D","line":64,"in_reply_to":"AAABkn%2F%2F6t0%3D","updated":"2011-12-05 21:26:06.000000000","message":"Yeah. I think this is really what we should have done in the first place. It also makes shutting down the client much easier.","commit_id":"a4073ca20e3267b15b87a909dbecc0ef681c6f23"}],"src/test/java/net/spy/memcached/QueueOverflowTest.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":"46e08d4ee40d955e4d1f75a8f33ea0843c23896f","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    Thread.sleep(50);"},{"line_number":144,"context_line":"    for (Future\u003cObject\u003e f : c) {"},{"line_number":145,"context_line":"      try {"},{"line_number":146,"context_line":"        f.get(1, TimeUnit.SECONDS);"},{"line_number":147,"context_line":"      } catch (TimeoutException e) {"},{"line_number":148,"context_line":"        // OK, just want to make sure the client doesn\u0027t crash"},{"line_number":149,"context_line":"      } catch (ExecutionException e) {"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABkn%2F%2F6tg%3D","line":146,"updated":"2011-12-05 21:13:34.000000000","message":"Also doesn\u0027t belong in this commit, but it\u0027s okay.","commit_id":"a4073ca20e3267b15b87a909dbecc0ef681c6f23"}]}
