)]}'
{"src/main/java/net/spy/memcached/vbucket/BucketMonitor.java":[{"author":{"_account_id":1000002,"name":"Trond Norbye","display_name":"Trond","email":"trond.norbye@couchbase.com","username":"trond","avatars":[{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5dce621a59302b73e54f006fa9fcdc97082e9fc0","unresolved":false,"context_lines":[{"line_number":26,"context_line":"/**"},{"line_number":27,"context_line":" *"},{"line_number":28,"context_line":" * The BucketMonitor will open an HTTP comet stream to monitor for"},{"line_number":29,"context_line":" * changes to the list of nodes.  If the list of nodes changes"},{"line_number":30,"context_line":" */"},{"line_number":31,"context_line":"public class BucketMonitor extends Observable {"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2Fz0%3D","line":29,"updated":"2011-05-31 15:03:02.000000000","message":"What happens if the list of nodes changes? ;-)","commit_id":"c697d175568630daf92780b99cc22a59a5a021bd"},{"author":{"_account_id":1000002,"name":"Trond Norbye","display_name":"Trond","email":"trond.norbye@couchbase.com","username":"trond","avatars":[{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5dce621a59302b73e54f006fa9fcdc97082e9fc0","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        String scheme \u003d cometStreamURI.getScheme() \u003d\u003d null ? \"http\" : cometStreamURI.getScheme();"},{"line_number":62,"context_line":"        if (!scheme.equals(\"http\")) {"},{"line_number":63,"context_line":"            // an SslHandler is needed in the pipeline"},{"line_number":64,"context_line":"            //System.err.println(\"Only HTTP is supported.\");"},{"line_number":65,"context_line":"            throw new UnsupportedOperationException(\"Only http is supported.\");"},{"line_number":66,"context_line":"        }"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2Fzw%3D","line":64,"updated":"2011-05-31 15:03:02.000000000","message":"Why not delete this line instead of commenting it out?","commit_id":"c697d175568630daf92780b99cc22a59a5a021bd"},{"author":{"_account_id":1000018,"name":"Blair Zajac","username":"blair","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"d142a143b57c53baef66d5e0b29353ae23c97c23","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import java.util.logging.Logger;"},{"line_number":20,"context_line":"import java.text.ParseException;"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import org.jboss.netty.channel.ChannelFactory;"},{"line_number":23,"context_line":"import net.spy.memcached.vbucket.config.Bucket;"},{"line_number":24,"context_line":"import net.spy.memcached.vbucket.config.ConfigurationParser;"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABRn%2F%2F%2Fgs%3D","line":22,"updated":"2011-06-03 19:52:27.000000000","message":"Move this import with the rest of the org.jboss.","commit_id":"01d25add3f785ac1b7a072dbc4ebc07b43f66e6f"},{"author":{"_account_id":1000018,"name":"Blair Zajac","username":"blair","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"d142a143b57c53baef66d5e0b29353ae23c97c23","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            Bucket bucket \u003d this.configParser.parseBucket(response);"},{"line_number":92,"context_line":"            setBucket(bucket);"},{"line_number":93,"context_line":"        } catch (ParseException ex) {"},{"line_number":94,"context_line":"            Logger.getLogger(BucketMonitor.class.getName()).log(Level.WARNING,"},{"line_number":95,"context_line":"                    \"Invalid client configuration received from server.  Staying with existing configuration.\", ex);"},{"line_number":96,"context_line":"            Logger.getLogger(BucketMonitor.class.getName()).log(Level.FINE,"},{"line_number":97,"context_line":"                    \"Invalid client configuration received:\\n\" + handler.getLastResponse() + \"\\n\");"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABRn%2F%2F%2Fgw%3D","line":94,"updated":"2011-06-03 19:52:27.000000000","message":"Getting a logger may be slow, suggest getting it once and keeping a local copy.","commit_id":"01d25add3f785ac1b7a072dbc4ebc07b43f66e6f"},{"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":"364fbbf68e067b52b3124109da79713ceca95800","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import java.util.logging.Logger;"},{"line_number":20,"context_line":"import java.text.ParseException;"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import org.jboss.netty.channel.ChannelFactory;"},{"line_number":23,"context_line":"import net.spy.memcached.vbucket.config.Bucket;"},{"line_number":24,"context_line":"import net.spy.memcached.vbucket.config.ConfigurationParser;"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"AAABRn%2F%2F%2FH8%3D","line":22,"updated":"2011-06-06 20:57:43.000000000","message":"Move up to other jboss imports","commit_id":"0d00461283a68ff3e1ce2b4bf2113899ea91e98b"},{"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":"2f0143319e78931f1fb0380fa8f7237ab82e3305","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import java.util.logging.Logger;"},{"line_number":20,"context_line":"import java.text.ParseException;"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import org.jboss.netty.channel.ChannelFactory;"},{"line_number":23,"context_line":"import net.spy.memcached.vbucket.config.Bucket;"},{"line_number":24,"context_line":"import net.spy.memcached.vbucket.config.ConfigurationParser;"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"AAABRn%2F%2F%2FC4%3D","line":22,"in_reply_to":"AAABRn%2F%2F%2FH8%3D","updated":"2011-06-07 04:33:00.000000000","message":"Done","commit_id":"0d00461283a68ff3e1ce2b4bf2113899ea91e98b"},{"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":"364fbbf68e067b52b3124109da79713ceca95800","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            setBucket(bucket);"},{"line_number":93,"context_line":"        } catch (ParseException ex) {"},{"line_number":94,"context_line":"            Logger.getLogger(BucketMonitor.class.getName()).log(Level.WARNING,"},{"line_number":95,"context_line":"                    \"Invalid client configuration received from server.  Staying with existing configuration.\", ex);"},{"line_number":96,"context_line":"            Logger.getLogger(BucketMonitor.class.getName()).log(Level.FINE,"},{"line_number":97,"context_line":"                    \"Invalid client configuration received:\\n\" + handler.getLastResponse() + \"\\n\");"},{"line_number":98,"context_line":"        }"}],"source_content_type":"text/x-java","patch_set":4,"id":"AAABRn%2F%2F%2FH4%3D","line":95,"updated":"2011-06-06 20:57:43.000000000","message":"Use spy logger?","commit_id":"0d00461283a68ff3e1ce2b4bf2113899ea91e98b"},{"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":"2f0143319e78931f1fb0380fa8f7237ab82e3305","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            setBucket(bucket);"},{"line_number":93,"context_line":"        } catch (ParseException ex) {"},{"line_number":94,"context_line":"            Logger.getLogger(BucketMonitor.class.getName()).log(Level.WARNING,"},{"line_number":95,"context_line":"                    \"Invalid client configuration received from server.  Staying with existing configuration.\", ex);"},{"line_number":96,"context_line":"            Logger.getLogger(BucketMonitor.class.getName()).log(Level.FINE,"},{"line_number":97,"context_line":"                    \"Invalid client configuration received:\\n\" + handler.getLastResponse() + \"\\n\");"},{"line_number":98,"context_line":"        }"}],"source_content_type":"text/x-java","patch_set":4,"id":"AAABRn%2F%2F%2FC0%3D","line":95,"in_reply_to":"AAABRn%2F%2F%2FH4%3D","updated":"2011-06-07 04:33:00.000000000","message":"The logging here is kind of a problem, since spy\u0027s logger requires everything to extend SpyObject, and this is using java.util.Observable.  I\u0027d love to fix it now, but I think for expediency I\u0027ll leave it as a bug to be addressed in the future.\n\nBoth will go somewhere reasonable if a system is configured properly.","commit_id":"0d00461283a68ff3e1ce2b4bf2113899ea91e98b"},{"author":{"_account_id":1000002,"name":"Trond Norbye","display_name":"Trond","email":"trond.norbye@couchbase.com","username":"trond","avatars":[{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"80ee203c5b7c852584c697436a104c81b4ac2aed","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            Bucket bucketToMonitor \u003d this.configParser.parseBucket(response);"},{"line_number":92,"context_line":"            setBucket(bucketToMonitor);"},{"line_number":93,"context_line":"        } catch (ParseException ex) {"},{"line_number":94,"context_line":"            Logger.getLogger(BucketMonitor.class.getName()).log(Level.WARNING,"},{"line_number":95,"context_line":"                    \"Invalid client configuration received from server.  Staying with existing configuration.\", ex);"},{"line_number":96,"context_line":"            Logger.getLogger(BucketMonitor.class.getName()).log(Level.FINE,"},{"line_number":97,"context_line":"                    \"Invalid client configuration received:\\n\" + handler.getLastResponse() + \"\\n\");"}],"source_content_type":"text/x-java","patch_set":5,"id":"AAABRn%2F%2F%2B%2F4%3D","line":94,"updated":"2011-06-07 06:39:46.000000000","message":"Why not have a static final logger \u003d Logger.getLogger(BucketMonitor.class.getName()) and then remove the logFiner and just use log.finer(), log.info etc?","commit_id":"c43646b02ce72d93ca078a067e097053d8b8dd93"},{"author":{"_account_id":1000000,"name":"Dustin Sallings","email":"dustin@spy.net","username":"dustin","avatars":[{"url":"https://www.gravatar.com/avatar/995543cb35c3b92a2eb43275116815a7.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/995543cb35c3b92a2eb43275116815a7.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/995543cb35c3b92a2eb43275116815a7.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/995543cb35c3b92a2eb43275116815a7.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"87e5b9efdfff7288ad7218c0c74212308b3e19bd","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            Bucket bucketToMonitor \u003d this.configParser.parseBucket(response);"},{"line_number":92,"context_line":"            setBucket(bucketToMonitor);"},{"line_number":93,"context_line":"        } catch (ParseException ex) {"},{"line_number":94,"context_line":"            Logger.getLogger(BucketMonitor.class.getName()).log(Level.WARNING,"},{"line_number":95,"context_line":"                    \"Invalid client configuration received from server.  Staying with existing configuration.\", ex);"},{"line_number":96,"context_line":"            Logger.getLogger(BucketMonitor.class.getName()).log(Level.FINE,"},{"line_number":97,"context_line":"                    \"Invalid client configuration received:\\n\" + handler.getLastResponse() + \"\\n\");"}],"source_content_type":"text/x-java","patch_set":5,"id":"AAABRn%2F%2F%2B%2Fs%3D","line":94,"in_reply_to":"AAABRn%2F%2F%2B%2F4%3D","updated":"2011-06-07 06:46:09.000000000","message":"I don\u0027t much like that convention.  Most of the spymemcached code has a lazily initialized default logger and you just do\n\ngetLogger().warn(\"whatever\");\n\nThis extends java.util.Observable, though.  Apparently that predated \"everything is an interface\" java and java just generally prevents you from having any kind of mixin.","commit_id":"c43646b02ce72d93ca078a067e097053d8b8dd93"},{"author":{"_account_id":1000002,"name":"Trond Norbye","display_name":"Trond","email":"trond.norbye@couchbase.com","username":"trond","avatars":[{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/1521a1fa74885ab7b9748113afe689cc.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"80ee203c5b7c852584c697436a104c81b4ac2aed","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        // and apache base64 codec has extra \\n\\l we have to strip off"},{"line_number":165,"context_line":"        String encodedText \u003d org.apache.commons.codec.binary.Base64.encodeBase64String(clearText.toString().getBytes());"},{"line_number":166,"context_line":"        char[] encodedWoNewline \u003d new char[encodedText.length() - 2];"},{"line_number":167,"context_line":"        encodedText.getChars(0, encodedText.length() - 2, encodedWoNewline, 0);"},{"line_number":168,"context_line":"        String authVal \u003d \"Basic \" + new String(encodedWoNewline);"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        return authVal;"}],"source_content_type":"text/x-java","patch_set":5,"id":"AAABRn%2F%2F%2B%2F0%3D","line":167,"updated":"2011-06-07 06:39:46.000000000","message":"Why not use String.substring(beginindex, endindex) ?","commit_id":"c43646b02ce72d93ca078a067e097053d8b8dd93"},{"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":"af58d5f515451cd70a2b1833ae60591bba26d5fb","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        // and apache base64 codec has extra \\n\\l we have to strip off"},{"line_number":165,"context_line":"        String encodedText \u003d org.apache.commons.codec.binary.Base64.encodeBase64String(clearText.toString().getBytes());"},{"line_number":166,"context_line":"        char[] encodedWoNewline \u003d new char[encodedText.length() - 2];"},{"line_number":167,"context_line":"        encodedText.getChars(0, encodedText.length() - 2, encodedWoNewline, 0);"},{"line_number":168,"context_line":"        String authVal \u003d \"Basic \" + new String(encodedWoNewline);"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        return authVal;"}],"source_content_type":"text/x-java","patch_set":5,"id":"AAABRn%2F%2F%2B4Y%3D","line":167,"in_reply_to":"AAABRn%2F%2F%2B%2F0%3D","updated":"2011-06-07 22:16:57.000000000","message":"because it\u0027s removed later?  :)","commit_id":"c43646b02ce72d93ca078a067e097053d8b8dd93"}],"src/main/java/net/spy/memcached/vbucket/BucketMonitorPipelineFactory.java":[{"author":{"_account_id":1000018,"name":"Blair Zajac","username":"blair","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"d142a143b57c53baef66d5e0b29353ae23c97c23","unresolved":false,"context_lines":[{"line_number":16,"context_line":"public class BucketMonitorPipelineFactory implements ChannelPipelineFactory {"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    public ChannelPipeline getPipeline() {"},{"line_number":19,"context_line":"        final ChannelPipeline pipeline \u003d pipeline();"},{"line_number":20,"context_line":"        pipeline.addLast(\"decoder\", new HttpResponseDecoder());"},{"line_number":21,"context_line":"        pipeline.addLast(\"encoder\", new HttpRequestEncoder());"},{"line_number":22,"context_line":"        pipeline.addLast(\"handler\", new BucketUpdateResponseHandler());"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABRn%2F%2F%2Fgk%3D","line":19,"updated":"2011-06-03 19:52:27.000000000","message":"No need for final here.","commit_id":"01d25add3f785ac1b7a072dbc4ebc07b43f66e6f"},{"author":{"_account_id":1000018,"name":"Blair Zajac","username":"blair","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"eecb66891efe28c646010300052f4c299be780ac","unresolved":false,"context_lines":[{"line_number":16,"context_line":"public class BucketMonitorPipelineFactory implements ChannelPipelineFactory {"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    public ChannelPipeline getPipeline() {"},{"line_number":19,"context_line":"        final ChannelPipeline pipeline \u003d pipeline();"},{"line_number":20,"context_line":"        pipeline.addLast(\"decoder\", new HttpResponseDecoder());"},{"line_number":21,"context_line":"        pipeline.addLast(\"encoder\", new HttpRequestEncoder());"},{"line_number":22,"context_line":"        pipeline.addLast(\"handler\", new BucketUpdateResponseHandler());"}],"source_content_type":"text/x-java","patch_set":4,"id":"AAABRn%2F%2F%2FDQ%3D","line":19,"updated":"2011-06-07 00:46:30.000000000","message":"No need for final here.","commit_id":"0d00461283a68ff3e1ce2b4bf2113899ea91e98b"}],"src/main/java/net/spy/memcached/vbucket/BucketUpdateResponseHandler.java":[{"author":{"_account_id":1000018,"name":"Blair Zajac","username":"blair","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"d142a143b57c53baef66d5e0b29353ae23c97c23","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import java.util.concurrent.CountDownLatch;"},{"line_number":17,"context_line":"import java.util.concurrent.TimeUnit;"},{"line_number":18,"context_line":"import java.util.logging.Level;"},{"line_number":19,"context_line":"import java.util.logging.Logger;"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"@ChannelPipelineCoverage(\"one\")"},{"line_number":22,"context_line":"public class BucketUpdateResponseHandler extends SimpleChannelUpstreamHandler {"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABRn%2F%2F%2FgY%3D","line":19,"updated":"2011-06-03 19:52:27.000000000","message":"Use spymemcached\u0027s logger infrastructure.","commit_id":"01d25add3f785ac1b7a072dbc4ebc07b43f66e6f"},{"author":{"_account_id":1000018,"name":"Blair Zajac","username":"blair","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"d142a143b57c53baef66d5e0b29353ae23c97c23","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        ChannelFuture channelFuture \u003d event.getFuture();"},{"line_number":34,"context_line":"        setReceivedFuture(channelFuture);"},{"line_number":35,"context_line":"        if (this.partialResponse \u003d\u003d null) {"},{"line_number":36,"context_line":"            this.partialResponse \u003d new StringBuffer();"},{"line_number":37,"context_line":"        }"},{"line_number":38,"context_line":"        if (readingChunks) {"},{"line_number":39,"context_line":"            HttpChunk chunk \u003d (HttpChunk) event.getMessage();"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABRn%2F%2F%2Fgg%3D","line":36,"updated":"2011-06-03 19:52:27.000000000","message":"Use StringBuilder as StringBuffer has synchronized methods (yuck :) )  Or if you do mean StringBuffer for that reason, then document it.","commit_id":"01d25add3f785ac1b7a072dbc4ebc07b43f66e6f"},{"author":{"_account_id":1000018,"name":"Blair Zajac","username":"blair","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"d142a143b57c53baef66d5e0b29353ae23c97c23","unresolved":false,"context_lines":[{"line_number":108,"context_line":"     * @param lastResponse the lastResponse to set"},{"line_number":109,"context_line":"     */"},{"line_number":110,"context_line":"    private void setLastResponse(String lastResponse) {"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        this.lastResponse \u003d lastResponse;"},{"line_number":114,"context_line":"    }"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAABRn%2F%2F%2Fgc%3D","line":111,"updated":"2011-06-03 19:52:27.000000000","message":"Remove empty lines.","commit_id":"01d25add3f785ac1b7a072dbc4ebc07b43f66e6f"},{"author":{"_account_id":1000018,"name":"Blair Zajac","username":"blair","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"inactive":true},"change_message_id":"eecb66891efe28c646010300052f4c299be780ac","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    private String lastResponse;"},{"line_number":26,"context_line":"    private ChannelFuture receivedFuture;"},{"line_number":27,"context_line":"    private CountDownLatch latch;"},{"line_number":28,"context_line":"    private StringBuffer partialResponse;"},{"line_number":29,"context_line":"    private static final Logger LOGGER \u003d Logger.getLogger(BucketUpdateResponseHandler.class.getName());"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @Override"}],"source_content_type":"text/x-java","patch_set":4,"id":"AAABRn%2F%2F%2FDU%3D","line":28,"updated":"2011-06-07 00:46:30.000000000","message":"Better to use StringBuilder if you don\u0027t have to worry about multiple threads since StringBuilfer isn\u0027t synchronized, unlike StringBuffer.","commit_id":"0d00461283a68ff3e1ce2b4bf2113899ea91e98b"},{"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":"364fbbf68e067b52b3124109da79713ceca95800","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    private String lastResponse;"},{"line_number":26,"context_line":"    private ChannelFuture receivedFuture;"},{"line_number":27,"context_line":"    private CountDownLatch latch;"},{"line_number":28,"context_line":"    private StringBuffer partialResponse;"},{"line_number":29,"context_line":"    private static final Logger LOGGER \u003d Logger.getLogger(BucketUpdateResponseHandler.class.getName());"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @Override"}],"source_content_type":"text/x-java","patch_set":4,"id":"AAABRn%2F%2F%2FIE%3D","line":28,"updated":"2011-06-06 20:57:43.000000000","message":"Shouldn\u0027t we be using the spy logger here?","commit_id":"0d00461283a68ff3e1ce2b4bf2113899ea91e98b"},{"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":"2f0143319e78931f1fb0380fa8f7237ab82e3305","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    private String lastResponse;"},{"line_number":26,"context_line":"    private ChannelFuture receivedFuture;"},{"line_number":27,"context_line":"    private CountDownLatch latch;"},{"line_number":28,"context_line":"    private StringBuffer partialResponse;"},{"line_number":29,"context_line":"    private static final Logger LOGGER \u003d Logger.getLogger(BucketUpdateResponseHandler.class.getName());"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @Override"}],"source_content_type":"text/x-java","patch_set":4,"id":"AAABRn%2F%2F%2FCw%3D","line":28,"in_reply_to":"AAABRn%2F%2F%2FIE%3D","updated":"2011-06-07 04:33:00.000000000","message":"Same logger problem.  Deferring for now.  These are developer time logs, generally speaking.","commit_id":"0d00461283a68ff3e1ce2b4bf2113899ea91e98b"},{"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":"364fbbf68e067b52b3124109da79713ceca95800","unresolved":false,"context_lines":[{"line_number":109,"context_line":"     */"},{"line_number":110,"context_line":"    private void setLastResponse(String lastResponse) {"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        this.lastResponse \u003d lastResponse;"},{"line_number":114,"context_line":"    }"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-java","patch_set":4,"id":"AAABRn%2F%2F%2FIA%3D","line":112,"updated":"2011-06-06 20:57:43.000000000","message":"Empty space.","commit_id":"0d00461283a68ff3e1ce2b4bf2113899ea91e98b"}]}
