)]}'
{"src/main/java/net/spy/memcached/MemcachedConnection.java":[{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":423,"context_line":"\t\t\t\t\tassert !channel.isConnected() : \"connected\";"},{"line_number":424,"context_line":"\t\t\t\t}"},{"line_number":425,"context_line":"\t\t\t} else {"},{"line_number":426,"context_line":"\t\t\t\tif(sk.isValid() \u0026\u0026 sk.isReadable()) {"},{"line_number":427,"context_line":"\t\t\t\t\thandleReads(sk, qa);"},{"line_number":428,"context_line":"\t\t\t\t}"},{"line_number":429,"context_line":"\t\t\t\tif(sk.isValid() \u0026\u0026 sk.isWritable()) {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BkM%3D","line":426,"updated":"2011-06-08 17:18:45.000000000","message":"These seems like it was part of another change that should come in with a separate changeset.\n\ne.g. did it fix a bug?  What\u0027s the bug?  Should we have it regardless of tap support?","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"95528544fa722d3c2ab42b6fc67c6d33f434746a","unresolved":false,"context_lines":[{"line_number":423,"context_line":"\t\t\t\t\tassert !channel.isConnected() : \"connected\";"},{"line_number":424,"context_line":"\t\t\t\t}"},{"line_number":425,"context_line":"\t\t\t} else {"},{"line_number":426,"context_line":"\t\t\t\tif(sk.isValid() \u0026\u0026 sk.isReadable()) {"},{"line_number":427,"context_line":"\t\t\t\t\thandleReads(sk, qa);"},{"line_number":428,"context_line":"\t\t\t\t}"},{"line_number":429,"context_line":"\t\t\t\tif(sk.isValid() \u0026\u0026 sk.isWritable()) {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BaI%3D","line":426,"in_reply_to":"AAABRn%2F%2F%2BbU%3D","updated":"2011-06-09 20:54:51.000000000","message":"Done","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"6b0f4fd175c920b3b1372450b90cbadccc077f5f","unresolved":false,"context_lines":[{"line_number":423,"context_line":"\t\t\t\t\tassert !channel.isConnected() : \"connected\";"},{"line_number":424,"context_line":"\t\t\t\t}"},{"line_number":425,"context_line":"\t\t\t} else {"},{"line_number":426,"context_line":"\t\t\t\tif(sk.isValid() \u0026\u0026 sk.isReadable()) {"},{"line_number":427,"context_line":"\t\t\t\t\thandleReads(sk, qa);"},{"line_number":428,"context_line":"\t\t\t\t}"},{"line_number":429,"context_line":"\t\t\t\tif(sk.isValid() \u0026\u0026 sk.isWritable()) {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BbU%3D","line":426,"in_reply_to":"AAABRn%2F%2F%2BcE%3D","updated":"2011-06-09 20:09:08.000000000","message":"Let\u0027s go ahead and put it in front of this one.  That\u0027ll be easy and I rarely regret splitting such a thing.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":423,"context_line":"\t\t\t\t\tassert !channel.isConnected() : \"connected\";"},{"line_number":424,"context_line":"\t\t\t\t}"},{"line_number":425,"context_line":"\t\t\t} else {"},{"line_number":426,"context_line":"\t\t\t\tif(sk.isValid() \u0026\u0026 sk.isReadable()) {"},{"line_number":427,"context_line":"\t\t\t\t\thandleReads(sk, qa);"},{"line_number":428,"context_line":"\t\t\t\t}"},{"line_number":429,"context_line":"\t\t\t\tif(sk.isValid() \u0026\u0026 sk.isWritable()) {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BcE%3D","line":426,"in_reply_to":"AAABRn%2F%2F%2BkM%3D","updated":"2011-06-09 19:25:59.000000000","message":"The issue was that when processing tap streams I came across selectors that were invalid sometimes and I got errors. I never saw the issue with normal memcached operations.\n\nIt could go in as a separate commit since I think the code is more correct like this even without tap, but in my experience testing it only seemed to affect tap.\n\nYou make the call. Separate commits or same commit. I think either way is correct.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"}],"src/main/java/net/spy/memcached/OperationFactory.java":[{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":240,"context_line":"\t * @param cb The status callback."},{"line_number":241,"context_line":"\t * @return The tap operation used to create and handle the stream."},{"line_number":242,"context_line":"\t */"},{"line_number":243,"context_line":"\tTapOperation tapBackfill(String id, Date date, String keyFilter,"},{"line_number":244,"context_line":"\t\t\tString valueFilter, OperationCallback cb);"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"\t/**"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BkI%3D","line":243,"updated":"2011-06-08 17:18:45.000000000","message":"I don\u0027t like including Date in the API if we can avoid it.  Date is kind of hard to work with and requires the user to generate an object instead of just passing in a number.\n\nIt\u0027s not a *huge* deal, but it seems a bit odd.\n\nI think the filters are a bigger issue, though.\n\nIf we\u0027re going to have filters, I think we need a proper TapFilter interface that takes the message and returns whether we should process it.\n\nWe can have an implementation of that that will do a regex on the key, and perhaps one on the value, but we can\u0027t generally assume a value is something we can make a String out of and do a regex on.  The value may very well be a JPG and I want all the ones where the GPS coordinates in the EXIF data land somewhere in Switzerland.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":240,"context_line":"\t * @param cb The status callback."},{"line_number":241,"context_line":"\t * @return The tap operation used to create and handle the stream."},{"line_number":242,"context_line":"\t */"},{"line_number":243,"context_line":"\tTapOperation tapBackfill(String id, Date date, String keyFilter,"},{"line_number":244,"context_line":"\t\t\tString valueFilter, OperationCallback cb);"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"\t/**"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BcA%3D","line":243,"in_reply_to":"AAABRn%2F%2F%2BkI%3D","updated":"2011-06-09 19:25:59.000000000","message":"No more Date. It\u0027s a long now.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"\t/**"},{"line_number":235,"context_line":"\t * Creates a tap backfill stream."},{"line_number":236,"context_line":"\t * @param id The namenode id that can be used to restart a interrupted tap"},{"line_number":237,"context_line":"\t * connection"},{"line_number":238,"context_line":"\t * @param date The date to start backfill from."},{"line_number":239,"context_line":"\t * @param cb The status callback."}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BFg%3D","line":236,"updated":"2011-06-15 18:28:19.000000000","message":"There is no such thing as a \"namenode\" in the world of TAP.  Documentation for TAP refers to this as \"name\" and ep-engine puts it in tap stats.  I\u0027d just call the id param the \"TAP connection name\"\n\nI\u0027d also put the uses of that name above the @param, don\u0027t put too much in the @param.  I\u0027d probably do it like this:\n\nTAP connection names are optional, but allow for momentary interruptions in connection to automatically restart.  TAP connection names also appear in TAP stats from the given server.\n\n@param id The name for the TAP connection","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"\t/**"},{"line_number":235,"context_line":"\t * Creates a tap backfill stream."},{"line_number":236,"context_line":"\t * @param id The namenode id that can be used to restart a interrupted tap"},{"line_number":237,"context_line":"\t * connection"},{"line_number":238,"context_line":"\t * @param date The date to start backfill from."},{"line_number":239,"context_line":"\t * @param cb The status callback."}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BEA%3D","line":236,"in_reply_to":"AAABRn%2F%2F%2BFg%3D","updated":"2011-06-15 20:59:57.000000000","message":"Your suggestion is now in the javadocs.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":235,"context_line":"\t * Creates a tap backfill stream."},{"line_number":236,"context_line":"\t * @param id The namenode id that can be used to restart a interrupted tap"},{"line_number":237,"context_line":"\t * connection"},{"line_number":238,"context_line":"\t * @param date The date to start backfill from."},{"line_number":239,"context_line":"\t * @param cb The status callback."},{"line_number":240,"context_line":"\t * @return The tap operation used to create and handle the stream."},{"line_number":241,"context_line":"\t */"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BFc%3D","line":238,"updated":"2011-06-15 18:28:19.000000000","message":"Perhaps this whole documentation section should point to \nhttp://www.couchbase.org/wiki/display/membase/TAP+Protocol\n\nConcern on this param is that it implies I can specify an arbitrary date.  Perhaps add the following to the description above:\n\nNote that according to the protocol, TAP backfill dates are advisory and the protocol guarantees at least data from specified date forward, but earlier mutations may be received.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":235,"context_line":"\t * Creates a tap backfill stream."},{"line_number":236,"context_line":"\t * @param id The namenode id that can be used to restart a interrupted tap"},{"line_number":237,"context_line":"\t * connection"},{"line_number":238,"context_line":"\t * @param date The date to start backfill from."},{"line_number":239,"context_line":"\t * @param cb The status callback."},{"line_number":240,"context_line":"\t * @return The tap operation used to create and handle the stream."},{"line_number":241,"context_line":"\t */"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BD4%3D","line":238,"in_reply_to":"AAABRn%2F%2F%2BFc%3D","updated":"2011-06-15 20:59:57.000000000","message":"Added the note at the bottom of your comment to the javadocs for this function. Also added a link to the tap documentation to each tap functions javadocs.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":244,"context_line":"\t/**"},{"line_number":245,"context_line":"\t * Creates a custom tap stream."},{"line_number":246,"context_line":"\t * @param id The namenode id that can be used to restart a interrupted tap"},{"line_number":247,"context_line":"\t * connection"},{"line_number":248,"context_line":"\t * @param message The tap message to send."},{"line_number":249,"context_line":"\t * @param cb The status callback."},{"line_number":250,"context_line":"\t * @return The tap operation used to create and handle the stream."}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BFY%3D","line":247,"updated":"2011-06-15 18:28:19.000000000","message":"!namenode","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":244,"context_line":"\t/**"},{"line_number":245,"context_line":"\t * Creates a custom tap stream."},{"line_number":246,"context_line":"\t * @param id The namenode id that can be used to restart a interrupted tap"},{"line_number":247,"context_line":"\t * connection"},{"line_number":248,"context_line":"\t * @param message The tap message to send."},{"line_number":249,"context_line":"\t * @param cb The status callback."},{"line_number":250,"context_line":"\t * @return The tap operation used to create and handle the stream."}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BD8%3D","line":247,"in_reply_to":"AAABRn%2F%2F%2BFY%3D","updated":"2011-06-15 20:59:57.000000000","message":"Your suggestion above is now in the javadocs here.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"}],"src/main/java/net/spy/memcached/TapClient.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":"23b473f5d456fed557b412136e797f9bcded7ac9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"\tpublic TapClient(InetSocketAddress... ia) {"},{"line_number":39,"context_line":"\t\tthis(Arrays.asList(ia));"},{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":"\t"},{"line_number":42,"context_line":"\tpublic TapClient(List\u003cInetSocketAddress\u003e addrs) {"},{"line_number":43,"context_line":"\t\tthis.rqueue \u003d new LinkedBlockingQueue\u003cResponseMessage\u003e();"},{"line_number":44,"context_line":"\t\tthis.omap \u003d new HashMap\u003cOperation, TapConnectionProvider\u003e();"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2Boc%3D","line":41,"updated":"2011-06-08 09:34:35.000000000","message":"Need some docs, but I expect that\u0027s coming.","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"dd1118e2ebbdde0afddbed1680aff31d4ac80210","unresolved":false,"context_lines":[{"line_number":38,"context_line":"\tpublic TapClient(InetSocketAddress... ia) {"},{"line_number":39,"context_line":"\t\tthis(Arrays.asList(ia));"},{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":"\t"},{"line_number":42,"context_line":"\tpublic TapClient(List\u003cInetSocketAddress\u003e addrs) {"},{"line_number":43,"context_line":"\t\tthis.rqueue \u003d new LinkedBlockingQueue\u003cResponseMessage\u003e();"},{"line_number":44,"context_line":"\t\tthis.omap \u003d new HashMap\u003cOperation, TapConnectionProvider\u003e();"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2BdI%3D","line":41,"in_reply_to":"AAABRn%2F%2F%2Boc%3D","updated":"2011-06-09 18:04:56.000000000","message":"Done","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"23b473f5d456fed557b412136e797f9bcded7ac9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"\t\tthis.pwd \u003d null;"},{"line_number":51,"context_line":"\t\tthis.messagesRead \u003d 0;"},{"line_number":52,"context_line":"\t}"},{"line_number":53,"context_line":"\t"},{"line_number":54,"context_line":"\tpublic TapClient(final List\u003cURI\u003e baseList, final String bucketName, "},{"line_number":55,"context_line":"\t\t\tfinal String usr, final String pwd) {"},{"line_number":56,"context_line":"\t\tthis.rqueue \u003d new LinkedBlockingQueue\u003cResponseMessage\u003e();"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2BoU%3D","line":53,"updated":"2011-06-08 09:34:35.000000000","message":"nitpick: MemcachedClient now has a ctor that uses bucketName as username, perhaps this should too.","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"dd1118e2ebbdde0afddbed1680aff31d4ac80210","unresolved":false,"context_lines":[{"line_number":50,"context_line":"\t\tthis.pwd \u003d null;"},{"line_number":51,"context_line":"\t\tthis.messagesRead \u003d 0;"},{"line_number":52,"context_line":"\t}"},{"line_number":53,"context_line":"\t"},{"line_number":54,"context_line":"\tpublic TapClient(final List\u003cURI\u003e baseList, final String bucketName, "},{"line_number":55,"context_line":"\t\t\tfinal String usr, final String pwd) {"},{"line_number":56,"context_line":"\t\tthis.rqueue \u003d new LinkedBlockingQueue\u003cResponseMessage\u003e();"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2BdE%3D","line":53,"in_reply_to":"AAABRn%2F%2F%2BoU%3D","updated":"2011-06-09 18:04:56.000000000","message":"I have looked at the MemcachedClient and I do not understand how to correct this issue.","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"23b473f5d456fed557b412136e797f9bcded7ac9","unresolved":false,"context_lines":[{"line_number":240,"context_line":"\t"},{"line_number":241,"context_line":"\t/**"},{"line_number":242,"context_line":"\t * The number of messages read by all of the tap streams created"},{"line_number":243,"context_line":"\t * with this client."},{"line_number":244,"context_line":"\t * @return The number of messages read"},{"line_number":245,"context_line":"\t */"},{"line_number":246,"context_line":"\tpublic long getMessagesRead() {"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2BoY%3D","line":243,"updated":"2011-06-08 09:34:35.000000000","message":"Nice!  Will this include only mutations, or all TAP responses?  Might be good to clarify.","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"dd1118e2ebbdde0afddbed1680aff31d4ac80210","unresolved":false,"context_lines":[{"line_number":240,"context_line":"\t"},{"line_number":241,"context_line":"\t/**"},{"line_number":242,"context_line":"\t * The number of messages read by all of the tap streams created"},{"line_number":243,"context_line":"\t * with this client."},{"line_number":244,"context_line":"\t * @return The number of messages read"},{"line_number":245,"context_line":"\t */"},{"line_number":246,"context_line":"\tpublic long getMessagesRead() {"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2BdM%3D","line":243,"in_reply_to":"AAABRn%2F%2F%2BoY%3D","updated":"2011-06-09 18:04:56.000000000","message":"Done","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"public class TapClient {"},{"line_number":28,"context_line":"\tprivate boolean vBucketAware;"},{"line_number":29,"context_line":"\tpublic BlockingQueue\u003cResponseMessage\u003e rqueue;"},{"line_number":30,"context_line":"\tprivate HashMap\u003cOperation, TapConnectionProvider\u003e omap;"},{"line_number":31,"context_line":"\tprivate List\u003cInetSocketAddress\u003e addrs;"},{"line_number":32,"context_line":"\tprivate List\u003cURI\u003e baseList;"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BkE%3D","line":29,"updated":"2011-06-08 17:18:45.000000000","message":"Public mutable field is really bad.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"public class TapClient {"},{"line_number":28,"context_line":"\tprivate boolean vBucketAware;"},{"line_number":29,"context_line":"\tpublic BlockingQueue\u003cResponseMessage\u003e rqueue;"},{"line_number":30,"context_line":"\tprivate HashMap\u003cOperation, TapConnectionProvider\u003e omap;"},{"line_number":31,"context_line":"\tprivate List\u003cInetSocketAddress\u003e addrs;"},{"line_number":32,"context_line":"\tprivate List\u003cURI\u003e baseList;"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BjQ%3D","line":29,"in_reply_to":"AAABRn%2F%2F%2BkE%3D","updated":"2011-06-09 19:25:59.000000000","message":"Oops. I changed this when I was testing something. I\u0027ll change it back.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"6b0f4fd175c920b3b1372450b90cbadccc077f5f","unresolved":false,"context_lines":[{"line_number":51,"context_line":"\t\tthis.messagesRead \u003d 0;"},{"line_number":52,"context_line":"\t}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"\tpublic TapClient(final List\u003cURI\u003e baseList, final String bucketName,"},{"line_number":55,"context_line":"\t\t\tfinal String usr, final String pwd) {"},{"line_number":56,"context_line":"\t\tthis.rqueue \u003d new LinkedBlockingQueue\u003cResponseMessage\u003e();"},{"line_number":57,"context_line":"\t\tthis.omap \u003d new HashMap\u003cOperation, TapConnectionProvider\u003e();"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BbM%3D","line":54,"updated":"2011-06-09 20:09:08.000000000","message":"Is this actually required to be ordered, or can it be Collection\u003cURI\u003e ?","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"95528544fa722d3c2ab42b6fc67c6d33f434746a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"\t\tthis.messagesRead \u003d 0;"},{"line_number":52,"context_line":"\t}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"\tpublic TapClient(final List\u003cURI\u003e baseList, final String bucketName,"},{"line_number":55,"context_line":"\t\t\tfinal String usr, final String pwd) {"},{"line_number":56,"context_line":"\t\tthis.rqueue \u003d new LinkedBlockingQueue\u003cResponseMessage\u003e();"},{"line_number":57,"context_line":"\t\tthis.omap \u003d new HashMap\u003cOperation, TapConnectionProvider\u003e();"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BaE%3D","line":54,"in_reply_to":"AAABRn%2F%2F%2BbM%3D","updated":"2011-06-09 20:54:51.000000000","message":"If that\u0027s the case then this is also an issue in MemcachedConnection. Should I fix it there as well. If so the MemcachedConnection fix should happen before this code gets submitted.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":75,"context_line":"\t\t\tmessagesRead++;"},{"line_number":76,"context_line":"\t\t\treturn rqueue.poll(1, TimeUnit.SECONDS);"},{"line_number":77,"context_line":"\t\t} catch (InterruptedException e) {"},{"line_number":78,"context_line":"\t\t\tmessagesRead--;"},{"line_number":79,"context_line":"\t\t\treturn null;"},{"line_number":80,"context_line":"\t\t}"},{"line_number":81,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BkA%3D","line":78,"updated":"2011-06-08 17:18:45.000000000","message":"You ate an interrupted exception here.  That doesn\u0027t seem like a good idea.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":75,"context_line":"\t\t\tmessagesRead++;"},{"line_number":76,"context_line":"\t\t\treturn rqueue.poll(1, TimeUnit.SECONDS);"},{"line_number":77,"context_line":"\t\t} catch (InterruptedException e) {"},{"line_number":78,"context_line":"\t\t\tmessagesRead--;"},{"line_number":79,"context_line":"\t\t\treturn null;"},{"line_number":80,"context_line":"\t\t}"},{"line_number":81,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bb8%3D","line":78,"in_reply_to":"AAABRn%2F%2F%2BkA%3D","updated":"2011-06-09 19:25:59.000000000","message":"Now we just shutdown since this should really never be interrupted anyways. If it is something that shouldn\u0027t have happened did.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":91,"context_line":"\t\tif (!rqueue.isEmpty()) {"},{"line_number":92,"context_line":"\t\t\treturn true;"},{"line_number":93,"context_line":"\t\t} else {"},{"line_number":94,"context_line":"\t\t\tsynchronized(omap) {"},{"line_number":95,"context_line":"\t\t\t\tIterator\u003cOperation\u003e itr \u003d omap.keySet().iterator();"},{"line_number":96,"context_line":"\t\t\t\twhile (itr.hasNext()) {"},{"line_number":97,"context_line":"\t\t\t\t\tOperation op \u003d itr.next();"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bj4%3D","line":94,"updated":"2011-06-08 17:18:45.000000000","message":"It\u0027s not clear why this object is inconsistently synchronized throughout this class.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"\t\tif (!rqueue.isEmpty()) {"},{"line_number":92,"context_line":"\t\t\treturn true;"},{"line_number":93,"context_line":"\t\t} else {"},{"line_number":94,"context_line":"\t\t\tsynchronized(omap) {"},{"line_number":95,"context_line":"\t\t\t\tIterator\u003cOperation\u003e itr \u003d omap.keySet().iterator();"},{"line_number":96,"context_line":"\t\t\t\twhile (itr.hasNext()) {"},{"line_number":97,"context_line":"\t\t\t\t\tOperation op \u003d itr.next();"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bb0%3D","line":94,"in_reply_to":"AAABRn%2F%2F%2Bj4%3D","updated":"2011-06-09 19:25:59.000000000","message":"Synchronized omap in all places in the code. Only one thread should even be accessing it at any given time. If there is a better construct I can use for this model let me know.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":209,"context_line":"\t\t\t\tpublic void run() {"},{"line_number":210,"context_line":"\t\t\t\t\ttry {"},{"line_number":211,"context_line":"\t\t\t\t\t\tThread.sleep(runTime * 1000);"},{"line_number":212,"context_line":"\t\t\t\t\t} catch (InterruptedException e) {"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"\t\t\t\t\t}"},{"line_number":215,"context_line":"\t\t\t\t\tconn.shutdown();"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bj8%3D","line":212,"updated":"2011-06-08 17:18:45.000000000","message":"Empty catch blocks are always wrong.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":209,"context_line":"\t\t\t\tpublic void run() {"},{"line_number":210,"context_line":"\t\t\t\t\ttry {"},{"line_number":211,"context_line":"\t\t\t\t\t\tThread.sleep(runTime * 1000);"},{"line_number":212,"context_line":"\t\t\t\t\t} catch (InterruptedException e) {"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"\t\t\t\t\t}"},{"line_number":215,"context_line":"\t\t\t\t\tconn.shutdown();"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bb4%3D","line":212,"in_reply_to":"AAABRn%2F%2F%2Bj8%3D","updated":"2011-06-09 19:25:59.000000000","message":"I added comments here for why I have an empty catch block here.\n\nThe reason is that after x amount of time or an interrupt we want to shutdown. Adding code to the catch block would just cause code duplication.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"1e67cec1d9f6d6ae2007af7c233e840305e70187","unresolved":false,"context_lines":[{"line_number":240,"context_line":"\t\t\t\t\t} catch (InterruptedException e) {"},{"line_number":241,"context_line":"\t\t\t\t\t\t/* Not caught because if we are interrupted early"},{"line_number":242,"context_line":"\t\t\t\t\t\t * the stream should close anyways."},{"line_number":243,"context_line":"\t\t\t\t\t\t */"},{"line_number":244,"context_line":"\t\t\t\t\t}"},{"line_number":245,"context_line":"\t\t\t\t\tconn.shutdown();"},{"line_number":246,"context_line":"\t\t\t\t\tsynchronized(omap) {"}],"source_content_type":"text/x-java","patch_set":5,"id":"AAABRn%2F%2F%2BbY%3D","line":243,"updated":"2011-06-09 19:54:43.000000000","message":"Any reason not to call Thread.currentThread().interrupt() anyway?","commit_id":"4e97df166aae6625c57e6adc3718becd1b2beaa4"},{"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":"6441fbfea4da86826b705964e17053a253e383ec","unresolved":false,"context_lines":[{"line_number":240,"context_line":"\t\t\t\t\t} catch (InterruptedException e) {"},{"line_number":241,"context_line":"\t\t\t\t\t\t/* Not caught because if we are interrupted early"},{"line_number":242,"context_line":"\t\t\t\t\t\t * the stream should close anyways."},{"line_number":243,"context_line":"\t\t\t\t\t\t */"},{"line_number":244,"context_line":"\t\t\t\t\t}"},{"line_number":245,"context_line":"\t\t\t\t\tconn.shutdown();"},{"line_number":246,"context_line":"\t\t\t\t\tsynchronized(omap) {"}],"source_content_type":"text/x-java","patch_set":5,"id":"AAABRn%2F%2F%2BaM%3D","line":243,"in_reply_to":"AAABRn%2F%2F%2BbY%3D","updated":"2011-06-09 20:56:39.000000000","message":"Nope. Done","commit_id":"4e97df166aae6625c57e6adc3718becd1b2beaa4"},{"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":"1e67cec1d9f6d6ae2007af7c233e840305e70187","unresolved":false,"context_lines":[{"line_number":264,"context_line":"\t */"},{"line_number":265,"context_line":"\tpublic void shutdown() {"},{"line_number":266,"context_line":"\t\tsynchronized(omap) {"},{"line_number":267,"context_line":"\t\t\tIterator\u003cOperation\u003e itr \u003d omap.keySet().iterator();"},{"line_number":268,"context_line":"\t\t\twhile (itr.hasNext()) {"},{"line_number":269,"context_line":"\t\t\t\tomap.get(itr.next()).shutdown();"},{"line_number":270,"context_line":"\t\t\t}"}],"source_content_type":"text/x-java","patch_set":5,"id":"AAABRn%2F%2F%2Bbc%3D","line":267,"updated":"2011-06-09 19:54:43.000000000","message":"I think this is easier to read as:\n\n    for (Map.Entry\u003cOperation,TapConnectionProvider\u003e me: omap.entrySet()) {\n        me.getValue().shutdown();\n    }\n\nthough barely (thanks, Java).  I typically don\u0027t like using a while loop when a for loop will do.","commit_id":"4e97df166aae6625c57e6adc3718becd1b2beaa4"},{"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":"6441fbfea4da86826b705964e17053a253e383ec","unresolved":false,"context_lines":[{"line_number":264,"context_line":"\t */"},{"line_number":265,"context_line":"\tpublic void shutdown() {"},{"line_number":266,"context_line":"\t\tsynchronized(omap) {"},{"line_number":267,"context_line":"\t\t\tIterator\u003cOperation\u003e itr \u003d omap.keySet().iterator();"},{"line_number":268,"context_line":"\t\t\twhile (itr.hasNext()) {"},{"line_number":269,"context_line":"\t\t\t\tomap.get(itr.next()).shutdown();"},{"line_number":270,"context_line":"\t\t\t}"}],"source_content_type":"text/x-java","patch_set":5,"id":"AAABRn%2F%2F%2BaQ%3D","line":267,"in_reply_to":"AAABRn%2F%2F%2Bbc%3D","updated":"2011-06-09 20:56:39.000000000","message":"Done","commit_id":"4e97df166aae6625c57e6adc3718becd1b2beaa4"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\tprivate long messagesRead;"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"\t/**"},{"line_number":39,"context_line":"\t * Creates a non-vBucket aware tap client."},{"line_number":40,"context_line":"\t *"},{"line_number":41,"context_line":"\t * @param ia the addresses of each node in the cluster."},{"line_number":42,"context_line":"\t */"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BFU%3D","line":39,"updated":"2011-06-15 18:28:19.000000000","message":"it\u0027s less about vbucket awareness, right?  It\u0027s more about cluster aware.  Would prefer:\n\nCreates a TapClient against the specified servers.\n\nThis type of TapClient will TAP the specified servers, but will not be able to react to changes to changes in the number of cluster nodes.  Using the constructor which bootstraps itself from the cluster REST interface is preferred.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\tprivate long messagesRead;"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"\t/**"},{"line_number":39,"context_line":"\t * Creates a non-vBucket aware tap client."},{"line_number":40,"context_line":"\t *"},{"line_number":41,"context_line":"\t * @param ia the addresses of each node in the cluster."},{"line_number":42,"context_line":"\t */"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BD0%3D","line":39,"in_reply_to":"AAABRn%2F%2F%2BFU%3D","updated":"2011-06-15 20:59:57.000000000","message":"Changed to match you comments on both non-cluster aware client constructors.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":61,"context_line":"\t\tthis.messagesRead \u003d 0;"},{"line_number":62,"context_line":"\t}"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"\tpublic TapClient(final List\u003cURI\u003e baseList, final String bucketName,"},{"line_number":65,"context_line":"\t\t\tfinal String usr, final String pwd) {"},{"line_number":66,"context_line":"\t\tfor (URI bu : baseList) {"},{"line_number":67,"context_line":"\t\t\tif (!bu.isAbsolute()) {"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BFQ%3D","line":64,"updated":"2011-06-15 18:28:19.000000000","message":"javadoc?","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"\t\tthis.messagesRead \u003d 0;"},{"line_number":62,"context_line":"\t}"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"\tpublic TapClient(final List\u003cURI\u003e baseList, final String bucketName,"},{"line_number":65,"context_line":"\t\t\tfinal String usr, final String pwd) {"},{"line_number":66,"context_line":"\t\tfor (URI bu : baseList) {"},{"line_number":67,"context_line":"\t\t\tif (!bu.isAbsolute()) {"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BDw%3D","line":64,"in_reply_to":"AAABRn%2F%2F%2BFQ%3D","updated":"2011-06-15 20:59:57.000000000","message":"Done","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":85,"context_line":"\t * @return The tap message at the head of the queue or null if the"},{"line_number":86,"context_line":"\t * queue is empty for more than one second."},{"line_number":87,"context_line":"\t */"},{"line_number":88,"context_line":"\tpublic ResponseMessage getNextMessage() {"},{"line_number":89,"context_line":"\t\ttry {"},{"line_number":90,"context_line":"\t\t\tmessagesRead++;"},{"line_number":91,"context_line":"\t\t\treturn rqueue.poll(1, TimeUnit.SECONDS);"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BFM%3D","line":88,"updated":"2011-06-15 18:28:19.000000000","message":"would be really nice to have this implemented in another method which allows a param of int and TimeUnit.  What if I want to wait longer than a second.  Less than a second?\n\nif you add that method, it should have some minimum threshold like 1ms and should document that 2500ms is a recommended minimum.  I\u0027d actually prefer this be 2500ms by default.  As you pointed out when doing all of the timeout work, a single TCP retransmit may suck up more than 1 second.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":85,"context_line":"\t * @return The tap message at the head of the queue or null if the"},{"line_number":86,"context_line":"\t * queue is empty for more than one second."},{"line_number":87,"context_line":"\t */"},{"line_number":88,"context_line":"\tpublic ResponseMessage getNextMessage() {"},{"line_number":89,"context_line":"\t\ttry {"},{"line_number":90,"context_line":"\t\t\tmessagesRead++;"},{"line_number":91,"context_line":"\t\t\treturn rqueue.poll(1, TimeUnit.SECONDS);"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BDs%3D","line":88,"in_reply_to":"AAABRn%2F%2F%2BFM%3D","updated":"2011-06-15 20:59:57.000000000","message":"I added the method, but I disagree here on the timeout values. Getting null should be expected by the user no matter what the timeout is. Since with tap we don\u0027t cancel the tap connection when we don\u0027t see an item for the timeout 1 second is ok. Even specifying 1 nanosecond is ok (It will just eat up cpu).","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":125,"context_line":"\t}"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"\t/**"},{"line_number":128,"context_line":"\t * Allows the user to specify as custom tap message."},{"line_number":129,"context_line":"\t *"},{"line_number":130,"context_line":"\t * @param id The named tap id that can be used to resume a disconnected"},{"line_number":131,"context_line":"\t * tap stream"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BFI%3D","line":128,"updated":"2011-06-15 18:28:19.000000000","message":"typo","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":125,"context_line":"\t}"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"\t/**"},{"line_number":128,"context_line":"\t * Allows the user to specify as custom tap message."},{"line_number":129,"context_line":"\t *"},{"line_number":130,"context_line":"\t * @param id The named tap id that can be used to resume a disconnected"},{"line_number":131,"context_line":"\t * tap stream"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BDo%3D","line":128,"in_reply_to":"AAABRn%2F%2F%2BFI%3D","updated":"2011-06-15 20:59:57.000000000","message":"Done","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":173,"context_line":"\t * Specifies a tap stream that will send all key-value mutations that take"},{"line_number":174,"context_line":"\t * place in the future."},{"line_number":175,"context_line":"\t *"},{"line_number":176,"context_line":"\t * @param id The named tap id that can be used to resume a disconnected"},{"line_number":177,"context_line":"\t * tap stream"},{"line_number":178,"context_line":"\t * @param runTime The amount of time to do backfill for. Set to 0 for"},{"line_number":179,"context_line":"\t * infinite backfill."}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BFA%3D","line":176,"updated":"2011-06-15 18:28:19.000000000","message":"doc inconsistency.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":173,"context_line":"\t * Specifies a tap stream that will send all key-value mutations that take"},{"line_number":174,"context_line":"\t * place in the future."},{"line_number":175,"context_line":"\t *"},{"line_number":176,"context_line":"\t * @param id The named tap id that can be used to resume a disconnected"},{"line_number":177,"context_line":"\t * tap stream"},{"line_number":178,"context_line":"\t * @param runTime The amount of time to do backfill for. Set to 0 for"},{"line_number":179,"context_line":"\t * infinite backfill."}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BDk%3D","line":176,"in_reply_to":"AAABRn%2F%2F%2BFA%3D","updated":"2011-06-15 20:59:57.000000000","message":"Not sure what you are talking about here.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":182,"context_line":"\t * Membase cluster."},{"line_number":183,"context_line":"\t * @throws IOException If there are errors connecting to the cluster."},{"line_number":184,"context_line":"\t */"},{"line_number":185,"context_line":"\tpublic Operation tapBackfill(String id, final int runTime) throws IOException,"},{"line_number":186,"context_line":"\t\t\tConfigurationException {"},{"line_number":187,"context_line":"\t\treturn tapBackfill(id, -1, runTime);"},{"line_number":188,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BE8%3D","line":185,"updated":"2011-06-15 18:28:19.000000000","message":"Is it correct for this to be public?  I think addOp is not really public, so not sure why this is public.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":182,"context_line":"\t * Membase cluster."},{"line_number":183,"context_line":"\t * @throws IOException If there are errors connecting to the cluster."},{"line_number":184,"context_line":"\t */"},{"line_number":185,"context_line":"\tpublic Operation tapBackfill(String id, final int runTime) throws IOException,"},{"line_number":186,"context_line":"\t\t\tConfigurationException {"},{"line_number":187,"context_line":"\t\treturn tapBackfill(id, -1, runTime);"},{"line_number":188,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BDU%3D","line":185,"in_reply_to":"AAABRn%2F%2F%2BE8%3D","updated":"2011-06-15 20:59:57.000000000","message":"Yes, this is how we create a backfill tap stream.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":196,"context_line":"\t * @param date The date to begin sending key mutations from. Specify -1"},{"line_number":197,"context_line":"\t * to send all future key-value mutations."},{"line_number":198,"context_line":"\t * @param runTime The amount of time to do backfill for. Set to 0 for"},{"line_number":199,"context_line":"\t * infinite backfill."},{"line_number":200,"context_line":"\t * @return The operation that controls the tap stream."},{"line_number":201,"context_line":"\t * @throws ConfigurationException If a bad configuration was recieved from the"},{"line_number":202,"context_line":"\t * Membase cluster."}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BE4%3D","line":199,"updated":"2011-06-15 18:28:19.000000000","message":"in seconds?  minutes?  hours?  if it\u0027s an integer, I\u0027d expect a TimeValue param as well to follow or some description of the units.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":196,"context_line":"\t * @param date The date to begin sending key mutations from. Specify -1"},{"line_number":197,"context_line":"\t * to send all future key-value mutations."},{"line_number":198,"context_line":"\t * @param runTime The amount of time to do backfill for. Set to 0 for"},{"line_number":199,"context_line":"\t * infinite backfill."},{"line_number":200,"context_line":"\t * @return The operation that controls the tap stream."},{"line_number":201,"context_line":"\t * @throws ConfigurationException If a bad configuration was recieved from the"},{"line_number":202,"context_line":"\t * Membase cluster."}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BDg%3D","line":199,"in_reply_to":"AAABRn%2F%2F%2BE4%3D","updated":"2011-06-15 20:59:57.000000000","message":"Added a timeunit parameter.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":237,"context_line":"\t\t\t\t@Override"},{"line_number":238,"context_line":"\t\t\t\tpublic void run() {"},{"line_number":239,"context_line":"\t\t\t\t\ttry {"},{"line_number":240,"context_line":"\t\t\t\t\t\tThread.sleep(runTime * 1000);"},{"line_number":241,"context_line":"\t\t\t\t\t} catch (InterruptedException e) {"},{"line_number":242,"context_line":"\t\t\t\t\t\tThread.currentThread().interrupt();"},{"line_number":243,"context_line":"\t\t\t\t\t}"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BE0%3D","line":240,"updated":"2011-06-15 18:28:19.000000000","message":"looks like you intend seconds.  you can just bring that integer and TimeValue down here.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":237,"context_line":"\t\t\t\t@Override"},{"line_number":238,"context_line":"\t\t\t\tpublic void run() {"},{"line_number":239,"context_line":"\t\t\t\t\ttry {"},{"line_number":240,"context_line":"\t\t\t\t\t\tThread.sleep(runTime * 1000);"},{"line_number":241,"context_line":"\t\t\t\t\t} catch (InterruptedException e) {"},{"line_number":242,"context_line":"\t\t\t\t\t\tThread.currentThread().interrupt();"},{"line_number":243,"context_line":"\t\t\t\t\t}"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BDc%3D","line":240,"in_reply_to":"AAABRn%2F%2F%2BE0%3D","updated":"2011-06-15 20:59:57.000000000","message":"Added a timeunit parameter and convert whatever the timeunit/runtime is to milliseconds.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"99c71b2736be40ac7aec8908473101aa2018b930","unresolved":false,"context_lines":[{"line_number":261,"context_line":"\t/**"},{"line_number":262,"context_line":"\t * Shuts down all tap streams that are currently running."},{"line_number":263,"context_line":"\t */"},{"line_number":264,"context_line":"\tpublic void shutdown() {"},{"line_number":265,"context_line":"\t\tsynchronized(omap) {"},{"line_number":266,"context_line":"\t\t\tfor (Map.Entry\u003cOperation,TapConnectionProvider\u003e me: omap.entrySet()) {"},{"line_number":267,"context_line":"\t\t        me.getValue().shutdown();"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BEw%3D","line":264,"updated":"2011-06-15 18:28:19.000000000","message":"Could this block forever, or should it have a timeout equivalent?\n\nI don\u0027t want to block in someones finally() forever.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"},{"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":"f276bf011408613ad63f38419947b39bd6b2c10d","unresolved":false,"context_lines":[{"line_number":261,"context_line":"\t/**"},{"line_number":262,"context_line":"\t * Shuts down all tap streams that are currently running."},{"line_number":263,"context_line":"\t */"},{"line_number":264,"context_line":"\tpublic void shutdown() {"},{"line_number":265,"context_line":"\t\tsynchronized(omap) {"},{"line_number":266,"context_line":"\t\t\tfor (Map.Entry\u003cOperation,TapConnectionProvider\u003e me: omap.entrySet()) {"},{"line_number":267,"context_line":"\t\t        me.getValue().shutdown();"}],"source_content_type":"text/x-java","patch_set":7,"id":"AAABRn%2F%2F%2BDY%3D","line":264,"in_reply_to":"AAABRn%2F%2F%2BEw%3D","updated":"2011-06-15 20:59:57.000000000","message":"I don\u0027t think this can block forever. Unless MemcachedConnection\u0027s shutdown can block forever.","commit_id":"05cfc6caf146af3bc66c446eaf768674b3846c6f"}],"src/main/java/net/spy/memcached/TapConnectionProvider.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":"23b473f5d456fed557b412136e797f9bcded7ac9","unresolved":false,"context_lines":[{"line_number":341,"context_line":"\t\treturn rv;"},{"line_number":342,"context_line":"\t}"},{"line_number":343,"context_line":"\t"},{"line_number":344,"context_line":"\t/**"},{"line_number":345,"context_line":"\t * Wait for the queues to die down."},{"line_number":346,"context_line":"\t *"},{"line_number":347,"context_line":"\t * @param timeout the amount of time time for shutdown"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2BoQ%3D","line":344,"updated":"2011-06-08 09:34:35.000000000","message":"A lot of this code looks quite familiar.  :)  Did you decide it\u0027s impossible to extend an existing class and override as needed?","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"dd1118e2ebbdde0afddbed1680aff31d4ac80210","unresolved":false,"context_lines":[{"line_number":341,"context_line":"\t\treturn rv;"},{"line_number":342,"context_line":"\t}"},{"line_number":343,"context_line":"\t"},{"line_number":344,"context_line":"\t/**"},{"line_number":345,"context_line":"\t * Wait for the queues to die down."},{"line_number":346,"context_line":"\t *"},{"line_number":347,"context_line":"\t * @param timeout the amount of time time for shutdown"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2Bdc%3D","line":344,"in_reply_to":"AAABRn%2F%2F%2BoQ%3D","updated":"2011-06-09 18:04:56.000000000","message":"MemcachedConnection is final. I think I asked Dustin if I could make it not final and I think he said I probably shouldn\u0027t.","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":205,"context_line":"\t\t\t\ttry {"},{"line_number":206,"context_line":"\t\t\t\t\tconn.handleIO();"},{"line_number":207,"context_line":"\t\t\t\t} catch(IOException e) {"},{"line_number":208,"context_line":"\t\t\t\t\tlogRunException(e);"},{"line_number":209,"context_line":"\t\t\t\t} catch(CancelledKeyException e) {"},{"line_number":210,"context_line":"\t\t\t\t\tlogRunException(e);"},{"line_number":211,"context_line":"\t\t\t\t} catch(ClosedSelectorException e) {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bj0%3D","line":208,"updated":"2011-06-08 17:18:45.000000000","message":"Shouldn\u0027t some of these exceptions be fatal?","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":205,"context_line":"\t\t\t\ttry {"},{"line_number":206,"context_line":"\t\t\t\t\tconn.handleIO();"},{"line_number":207,"context_line":"\t\t\t\t} catch(IOException e) {"},{"line_number":208,"context_line":"\t\t\t\t\tlogRunException(e);"},{"line_number":209,"context_line":"\t\t\t\t} catch(CancelledKeyException e) {"},{"line_number":210,"context_line":"\t\t\t\t\tlogRunException(e);"},{"line_number":211,"context_line":"\t\t\t\t} catch(ClosedSelectorException e) {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bcw%3D","line":208,"in_reply_to":"AAABRn%2F%2F%2Bj0%3D","updated":"2011-06-09 19:25:59.000000000","message":"You wrote it so no? Anyways, this is a good comment, but it shouldn\u0027t be fixed in this commit. I\u0027ll add it to my list of things to do.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":331,"context_line":"\t\t\t\tconn.shutdown();"},{"line_number":332,"context_line":"\t\t\t\tsetName(baseName + \" - SHUTTING DOWN (informed client)\");"},{"line_number":333,"context_line":"\t\t\t\ttcService.shutdown();"},{"line_number":334,"context_line":"                if (this.configurationProvider !\u003d null) {"},{"line_number":335,"context_line":"                    this.configurationProvider.shutdown();"},{"line_number":336,"context_line":"                }"},{"line_number":337,"context_line":"\t\t\t} catch (IOException e) {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bjw%3D","line":334,"updated":"2011-06-08 17:18:45.000000000","message":"There\u0027s some weird indentation inconsistency in this file.  Should probably pick tabs or spaces.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":331,"context_line":"\t\t\t\tconn.shutdown();"},{"line_number":332,"context_line":"\t\t\t\tsetName(baseName + \" - SHUTTING DOWN (informed client)\");"},{"line_number":333,"context_line":"\t\t\t\ttcService.shutdown();"},{"line_number":334,"context_line":"                if (this.configurationProvider !\u003d null) {"},{"line_number":335,"context_line":"                    this.configurationProvider.shutdown();"},{"line_number":336,"context_line":"                }"},{"line_number":337,"context_line":"\t\t\t} catch (IOException e) {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bcs%3D","line":334,"in_reply_to":"AAABRn%2F%2F%2Bjw%3D","updated":"2011-06-09 19:25:59.000000000","message":"Done. I don\u0027t know why eclipse seems to do this sometimes. Anyways, I plan on having a common indentation scheme soon.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"}],"src/main/java/net/spy/memcached/ops/TapOperation.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":"a91e278ced0fc9e3a72fb1805670f9e5717e27d4","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"/**"},{"line_number":8,"context_line":" * Tap backfill operation."},{"line_number":9,"context_line":" */"},{"line_number":10,"context_line":"public interface TapOperation extends KeyedOperation {"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9wQ%3D","line":8,"updated":"2011-06-20 00:50:05.000000000","message":"This comment isn\u0027t really true, is it?","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"},{"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":"920da2cd98f668488746bbd6d80d68dcb0050120","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"/**"},{"line_number":8,"context_line":" * Tap backfill operation."},{"line_number":9,"context_line":" */"},{"line_number":10,"context_line":"public interface TapOperation extends KeyedOperation {"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9q4%3D","line":8,"in_reply_to":"AAABRn%2F%2F9wQ%3D","updated":"2011-06-20 18:22:51.000000000","message":"Done","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"}],"src/main/java/net/spy/memcached/protocol/ascii/AsciiOperationFactory.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":"a91e278ced0fc9e3a72fb1805670f9e5717e27d4","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"\t@Override"},{"line_number":137,"context_line":"\tpublic TapOperation tapBackfill(String id, long date, OperationCallback cb) {"},{"line_number":138,"context_line":"\t\tthrow new UnsupportedOperationException(\"Tap is not supported for ascii\");"},{"line_number":139,"context_line":"\t}"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"\t@Override"}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9wk%3D","line":138,"updated":"2011-06-20 00:50:05.000000000","message":"The word protocol here could save someone a lot of confusion.  Like previous suggestions, ASCII should be capped.","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"},{"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":"920da2cd98f668488746bbd6d80d68dcb0050120","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"\t@Override"},{"line_number":137,"context_line":"\tpublic TapOperation tapBackfill(String id, long date, OperationCallback cb) {"},{"line_number":138,"context_line":"\t\tthrow new UnsupportedOperationException(\"Tap is not supported for ascii\");"},{"line_number":139,"context_line":"\t}"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"\t@Override"}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9q0%3D","line":138,"in_reply_to":"AAABRn%2F%2F9wk%3D","updated":"2011-06-20 18:22:51.000000000","message":"Done","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"}],"src/main/java/net/spy/memcached/protocol/binary/TapAckOperationImpl.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":"a91e278ced0fc9e3a72fb1805670f9e5717e27d4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"\t\t// Do Nothing"},{"line_number":34,"context_line":"\t}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"\t@Override"},{"line_number":37,"context_line":"\tpublic Collection\u003cString\u003e getKeys() {"},{"line_number":38,"context_line":"\t\treturn null;"},{"line_number":39,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9wg%3D","line":36,"updated":"2011-06-20 00:50:05.000000000","message":"This at least seems worthy of some docs.  I know this isn\u0027t public for a user, but this would seem confusing if you just showed up.","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"},{"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":"920da2cd98f668488746bbd6d80d68dcb0050120","unresolved":false,"context_lines":[{"line_number":33,"context_line":"\t\t// Do Nothing"},{"line_number":34,"context_line":"\t}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"\t@Override"},{"line_number":37,"context_line":"\tpublic Collection\u003cString\u003e getKeys() {"},{"line_number":38,"context_line":"\t\treturn null;"},{"line_number":39,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9qs%3D","line":36,"in_reply_to":"AAABRn%2F%2F9wg%3D","updated":"2011-06-20 18:22:51.000000000","message":"Makes sense. I have added javadocs for this function saying it always returns null. If you think it can be better worded let me know.\n\n/**\n * Since the tap ack doesn\u0027t specify any specific keys to get\n * this function always returns null;\n */","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"}],"src/main/java/net/spy/memcached/protocol/binary/TapBackfillOperationImpl.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":"a91e278ced0fc9e3a72fb1805670f9e5717e27d4","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\t@Override"},{"line_number":42,"context_line":"\tpublic Collection\u003cString\u003e getKeys() {"},{"line_number":43,"context_line":"\t\treturn null;"},{"line_number":44,"context_line":"\t}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"\t@Override"}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9wc%3D","line":43,"updated":"2011-06-20 00:50:05.000000000","message":"Again, seems slightly confusing.","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"},{"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":"920da2cd98f668488746bbd6d80d68dcb0050120","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\t@Override"},{"line_number":42,"context_line":"\tpublic Collection\u003cString\u003e getKeys() {"},{"line_number":43,"context_line":"\t\treturn null;"},{"line_number":44,"context_line":"\t}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"\t@Override"}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9qo%3D","line":43,"in_reply_to":"AAABRn%2F%2F9wc%3D","updated":"2011-06-20 18:22:51.000000000","message":"Done","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"}],"src/main/java/net/spy/memcached/protocol/binary/TapCustomOperationImpl.java":[{"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":"920da2cd98f668488746bbd6d80d68dcb0050120","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\t\t}"},{"line_number":28,"context_line":"\t\tsetBuffer(message.getBytes());"},{"line_number":29,"context_line":"\t}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"\t@Override"},{"line_number":32,"context_line":"\tpublic Collection\u003cString\u003e getKeys() {"},{"line_number":33,"context_line":"\t\treturn null;"}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9qk%3D","line":30,"updated":"2011-06-20 18:22:51.000000000","message":"Added javadocs here too.","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"}],"src/main/java/net/spy/memcached/protocol/binary/TapOperationImpl.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":"23b473f5d456fed557b412136e797f9bcded7ac9","unresolved":false,"context_lines":[{"line_number":82,"context_line":"\t\t\t\t\treturn false;"},{"line_number":83,"context_line":"\t\t\t\t}"},{"line_number":84,"context_line":"\t\t\t}"},{"line_number":85,"context_line":"\t\t} catch (FieldDoesNotExistException e) {"},{"line_number":86,"context_line":"\t\t\t// There is no value for this packet so continue"},{"line_number":87,"context_line":"\t\t}"},{"line_number":88,"context_line":"\t\treturn true;"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2BoE%3D","line":85,"updated":"2011-06-08 09:34:35.000000000","message":"exceptions for control flow aren\u0027t usually good.  they used to be bad for performance too, not sure if that\u0027s still true.  in any event, is this the only way to do this?","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"dd1118e2ebbdde0afddbed1680aff31d4ac80210","unresolved":false,"context_lines":[{"line_number":82,"context_line":"\t\t\t\t\treturn false;"},{"line_number":83,"context_line":"\t\t\t\t}"},{"line_number":84,"context_line":"\t\t\t}"},{"line_number":85,"context_line":"\t\t} catch (FieldDoesNotExistException e) {"},{"line_number":86,"context_line":"\t\t\t// There is no value for this packet so continue"},{"line_number":87,"context_line":"\t\t}"},{"line_number":88,"context_line":"\t\treturn true;"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2BdA%3D","line":85,"in_reply_to":"AAABRn%2F%2F%2BoE%3D","updated":"2011-06-09 18:04:56.000000000","message":"Done","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"}],"src/main/java/net/spy/memcached/tapmessage/BaseMessage.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":"23b473f5d456fed557b412136e797f9bcded7ac9","unresolved":false,"context_lines":[{"line_number":288,"context_line":"\t * Prints the message in byte form in a pretty way. This function is mainly used for"},{"line_number":289,"context_line":"\t * debugging.\\ purposes."},{"line_number":290,"context_line":"\t */"},{"line_number":291,"context_line":"\tpublic void printMessage() {"},{"line_number":292,"context_line":"\t\tint colNum \u003d 0;"},{"line_number":293,"context_line":"\t\tSystem.out.printf(\"   %5s%5s%5s%5s\\n\", \"0\", \"1\", \"2\", \"3\");"},{"line_number":294,"context_line":"\t\tSystem.out.print(\"   ----------------------\");"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2Bn8%3D","line":291,"updated":"2011-06-08 09:34:35.000000000","message":"much better to have logging here or a String return that something could call toString() on.  Like logging.\n\nThis mostly looks like a toString() method, except it\u0027s tickling stdout.  That\u0027s someone  else\u0027s job.\n\nBy the way, if you insist on writing with System.something, use System.err, not System.out.  Better to just use logging.","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"dd1118e2ebbdde0afddbed1680aff31d4ac80210","unresolved":false,"context_lines":[{"line_number":288,"context_line":"\t * Prints the message in byte form in a pretty way. This function is mainly used for"},{"line_number":289,"context_line":"\t * debugging.\\ purposes."},{"line_number":290,"context_line":"\t */"},{"line_number":291,"context_line":"\tpublic void printMessage() {"},{"line_number":292,"context_line":"\t\tint colNum \u003d 0;"},{"line_number":293,"context_line":"\t\tSystem.out.printf(\"   %5s%5s%5s%5s\\n\", \"0\", \"1\", \"2\", \"3\");"},{"line_number":294,"context_line":"\t\tSystem.out.print(\"   ----------------------\");"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2Bc4%3D","line":291,"in_reply_to":"AAABRn%2F%2F%2Bn8%3D","updated":"2011-06-09 18:04:56.000000000","message":"Moved to a another class that users can user to see what tap messages look like. System.out/err changed to PrintWriter so users can decide where to send the output.","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"a91e278ced0fc9e3a72fb1805670f9e5717e27d4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/*"},{"line_number":2,"context_line":" * Copyright (c) 2010 Membase. All Rights Reserved."},{"line_number":3,"context_line":" */"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"package net.spy.memcached.tapmessage;"}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9wY%3D","line":2,"updated":"2011-06-20 00:50:05.000000000","message":"Who is this membase company?  And what year is it?  :p\n\nJust remove this section.","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"},{"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":"920da2cd98f668488746bbd6d80d68dcb0050120","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/*"},{"line_number":2,"context_line":" * Copyright (c) 2010 Membase. All Rights Reserved."},{"line_number":3,"context_line":" */"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"package net.spy.memcached.tapmessage;"}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9qg%3D","line":2,"in_reply_to":"AAABRn%2F%2F9wY%3D","updated":"2011-06-20 18:22:51.000000000","message":"I have no idea how that got in there.","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"},{"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":"a91e278ced0fc9e3a72fb1805670f9e5717e27d4","unresolved":false,"context_lines":[{"line_number":13,"context_line":" * Tap stream messages are created with the RequestMessage and ResponseMessage classes. Users"},{"line_number":14,"context_line":" * who want to take advantage of customizing their own tap messages should use the"},{"line_number":15,"context_line":" * CustomTapStream class since it provides flexibility to create all valid tap messages."},{"line_number":16,"context_line":" */"},{"line_number":17,"context_line":"public class BaseMessage {"},{"line_number":18,"context_line":"\t/**"},{"line_number":19,"context_line":"\t * The index of the magic field in a tap header."}],"source_content_type":"text/x-java","patch_set":8,"id":"AAABRn%2F%2F9wU%3D","line":16,"updated":"2011-06-20 00:50:05.000000000","message":"I\u0027m unsure why this class makes sense.  I may need to read more, but it seems like a lot of static stuff, and you\u0027ll have an instance of this somewhere with thread synchronization on the setters/getters?\n\nWill read more, but if says it can\u0027t be instantiated and then describes something that can.","commit_id":"e91faaeed46bee7567937aa90e41237cf567f447"},{"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":"f1a00eb5f56207658c15cf7022f76620f95f7426","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import java.nio.ByteBuffer;"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"import net.spy.memcached.tapmessage.Util;"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"/**"},{"line_number":8,"context_line":" * The HeaderMessage implements the header of a tap message. This class cannot be instantiated."}],"source_content_type":"text/x-java","patch_set":9,"id":"AAABRn%2F%2F9f0%3D","line":5,"updated":"2011-06-21 23:06:50.000000000","message":"import from the same package??","commit_id":"bc2f1447f9eafb5fd753f535b8abe699a32a0dae"},{"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":"4c4b4cf15b52be0a6a329b20c2a2412d3d1af207","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import java.nio.ByteBuffer;"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"import net.spy.memcached.tapmessage.Util;"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"/**"},{"line_number":8,"context_line":" * The HeaderMessage implements the header of a tap message. This class cannot be instantiated."}],"source_content_type":"text/x-java","patch_set":9,"id":"AAABRn%2F%2F9d8%3D","line":5,"in_reply_to":"AAABRn%2F%2F9f0%3D","updated":"2011-06-22 00:06:53.000000000","message":"Done","commit_id":"bc2f1447f9eafb5fd753f535b8abe699a32a0dae"}],"src/main/java/net/spy/memcached/tapmessage/FieldDoesNotExistException.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":"23b473f5d456fed557b412136e797f9bcded7ac9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"package net.spy.memcached.tapmessage;"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"/**"},{"line_number":4,"context_line":" * The FieldDoesNotExistException defines an error caused when a trying to read a field from a tap"},{"line_number":5,"context_line":" * message that does not exist or was not instantiated."},{"line_number":6,"context_line":" */"},{"line_number":7,"context_line":"public class FieldDoesNotExistException extends RuntimeException{"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2Bn4%3D","line":4,"updated":"2011-06-08 09:34:35.000000000","message":"I\u0027m not so certain this should exist.  See the other comments.","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"dd1118e2ebbdde0afddbed1680aff31d4ac80210","unresolved":false,"context_lines":[{"line_number":1,"context_line":"package net.spy.memcached.tapmessage;"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"/**"},{"line_number":4,"context_line":" * The FieldDoesNotExistException defines an error caused when a trying to read a field from a tap"},{"line_number":5,"context_line":" * message that does not exist or was not instantiated."},{"line_number":6,"context_line":" */"},{"line_number":7,"context_line":"public class FieldDoesNotExistException extends RuntimeException{"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2Bc8%3D","line":4,"in_reply_to":"AAABRn%2F%2F%2Bn4%3D","updated":"2011-06-09 18:04:56.000000000","message":"Removed","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"}],"src/main/java/net/spy/memcached/tapmessage/Flag.java":[{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":67,"context_line":"\t\tfor (int i \u003d 1; i \u003c\u003d this.flag; i *\u003d 2) {"},{"line_number":68,"context_line":"\t\t\tbit +\u003d f % 2;"},{"line_number":69,"context_line":"\t\t\tf \u003d f / 2;"},{"line_number":70,"context_line":"\t\t}"},{"line_number":71,"context_line":"\t\tif (bit \u003d\u003d 0)"},{"line_number":72,"context_line":"\t\t\treturn false;"},{"line_number":73,"context_line":"\t\treturn true;"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bjs%3D","line":70,"updated":"2011-06-08 17:18:45.000000000","message":"Why isn\u0027t this a masking op?","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"\t\tfor (int i \u003d 1; i \u003c\u003d this.flag; i *\u003d 2) {"},{"line_number":68,"context_line":"\t\t\tbit +\u003d f % 2;"},{"line_number":69,"context_line":"\t\t\tf \u003d f / 2;"},{"line_number":70,"context_line":"\t\t}"},{"line_number":71,"context_line":"\t\tif (bit \u003d\u003d 0)"},{"line_number":72,"context_line":"\t\t\treturn false;"},{"line_number":73,"context_line":"\t\treturn true;"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bbw%3D","line":70,"in_reply_to":"AAABRn%2F%2F%2Bjs%3D","updated":"2011-06-09 19:25:59.000000000","message":"It is now.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":68,"context_line":"\t\t\tbit +\u003d f % 2;"},{"line_number":69,"context_line":"\t\t\tf \u003d f / 2;"},{"line_number":70,"context_line":"\t\t}"},{"line_number":71,"context_line":"\t\tif (bit \u003d\u003d 0)"},{"line_number":72,"context_line":"\t\t\treturn false;"},{"line_number":73,"context_line":"\t\treturn true;"},{"line_number":74,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bjo%3D","line":71,"updated":"2011-06-08 17:18:45.000000000","message":"{}","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"\t\t\tbit +\u003d f % 2;"},{"line_number":69,"context_line":"\t\t\tf \u003d f / 2;"},{"line_number":70,"context_line":"\t\t}"},{"line_number":71,"context_line":"\t\tif (bit \u003d\u003d 0)"},{"line_number":72,"context_line":"\t\t\treturn false;"},{"line_number":73,"context_line":"\t\treturn true;"},{"line_number":74,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bbs%3D","line":71,"in_reply_to":"AAABRn%2F%2F%2Bjo%3D","updated":"2011-06-09 19:25:59.000000000","message":"Done","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"}],"src/main/java/net/spy/memcached/tapmessage/Magic.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":"23b473f5d456fed557b412136e797f9bcded7ac9","unresolved":false,"context_lines":[{"line_number":3,"context_line":"/**"},{"line_number":4,"context_line":" * The Magic enum contains a list all of the different magic that can be passed in a tap message in the flag field."},{"line_number":5,"context_line":" */"},{"line_number":6,"context_line":"public enum Magic {"},{"line_number":7,"context_line":"\t/**"},{"line_number":8,"context_line":"\t * Defines a binary tap packet"},{"line_number":9,"context_line":"\t */"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2Bn0%3D","line":6,"updated":"2011-06-08 09:34:35.000000000","message":"Magic is TAP specific?  Perhaps it should be TapMagic just to be a little less generic.\n\nWe don\u0027t have any other Magic... yet.","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"dd1118e2ebbdde0afddbed1680aff31d4ac80210","unresolved":false,"context_lines":[{"line_number":3,"context_line":"/**"},{"line_number":4,"context_line":" * The Magic enum contains a list all of the different magic that can be passed in a tap message in the flag field."},{"line_number":5,"context_line":" */"},{"line_number":6,"context_line":"public enum Magic {"},{"line_number":7,"context_line":"\t/**"},{"line_number":8,"context_line":"\t * Defines a binary tap packet"},{"line_number":9,"context_line":"\t */"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2BdU%3D","line":6,"in_reply_to":"AAABRn%2F%2F%2Bn0%3D","updated":"2011-06-09 18:04:56.000000000","message":"Done","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"}],"src/main/java/net/spy/memcached/tapmessage/Opcode.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":"23b473f5d456fed557b412136e797f9bcded7ac9","unresolved":false,"context_lines":[{"line_number":3,"context_line":"/**"},{"line_number":4,"context_line":" * The Opcode enum contains a list all of the different opcodes that can be passed in a tap message in the flag field."},{"line_number":5,"context_line":" */"},{"line_number":6,"context_line":"public enum Opcode {"},{"line_number":7,"context_line":"\t/**"},{"line_number":8,"context_line":"\t * Defines a tap no-op message"},{"line_number":9,"context_line":"\t */"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2Bnw%3D","line":6,"updated":"2011-06-08 09:34:35.000000000","message":"Perhaps this should be TapOpcode just so it\u0027s a bit more specific.","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"},{"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":"dd1118e2ebbdde0afddbed1680aff31d4ac80210","unresolved":false,"context_lines":[{"line_number":3,"context_line":"/**"},{"line_number":4,"context_line":" * The Opcode enum contains a list all of the different opcodes that can be passed in a tap message in the flag field."},{"line_number":5,"context_line":" */"},{"line_number":6,"context_line":"public enum Opcode {"},{"line_number":7,"context_line":"\t/**"},{"line_number":8,"context_line":"\t * Defines a tap no-op message"},{"line_number":9,"context_line":"\t */"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAABRn%2F%2F%2BdQ%3D","line":6,"in_reply_to":"AAABRn%2F%2F%2Bnw%3D","updated":"2011-06-09 18:04:56.000000000","message":"Done","commit_id":"918da4308e7e33c9b0c1d44d1d240ab1107b4423"}],"src/main/java/net/spy/memcached/tapmessage/RequestMessage.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":"4289d04ea607b729bcdb0efb79e53d544aff006d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\t * will be received."},{"line_number":40,"context_line":"\t * @param f The flags to use for this tap stream."},{"line_number":41,"context_line":"\t */"},{"line_number":42,"context_line":"\tpublic void setFlags(Flag f) {"},{"line_number":43,"context_line":"\t\tif (flags.length !\u003d FLAGS_FIELD_LENGTH)"},{"line_number":44,"context_line":"\t\t\tflags \u003d new byte[FLAGS_FIELD_LENGTH];"},{"line_number":45,"context_line":"\t\tif (!f.hasFlag(getFlags())) {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bno%3D","line":42,"updated":"2011-06-08 09:35:46.000000000","message":"Are these all really Public methods?","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\t * will be received."},{"line_number":40,"context_line":"\t * @param f The flags to use for this tap stream."},{"line_number":41,"context_line":"\t */"},{"line_number":42,"context_line":"\tpublic void setFlags(Flag f) {"},{"line_number":43,"context_line":"\t\tif (flags.length !\u003d FLAGS_FIELD_LENGTH)"},{"line_number":44,"context_line":"\t\t\tflags \u003d new byte[FLAGS_FIELD_LENGTH];"},{"line_number":45,"context_line":"\t\tif (!f.hasFlag(getFlags())) {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BcU%3D","line":42,"in_reply_to":"AAABRn%2F%2F%2Bno%3D","updated":"2011-06-09 19:25:59.000000000","message":"Yes. We allow users to create custom tap streams. On a side note I plan to refactor this class at some point.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":59,"context_line":"\tpublic void setBackfill(Date date) {"},{"line_number":60,"context_line":"\t\tbackfilldate \u003d new byte[BACKFILL_DATE_FIELD_LENGTH];"},{"line_number":61,"context_line":"\t\tif (date \u003d\u003d null) {"},{"line_number":62,"context_line":"\t\t\tfor (int i \u003d 0; i \u003c 8; i++)"},{"line_number":63,"context_line":"\t\t\t\tbackfilldate[i] \u003d -1;"},{"line_number":64,"context_line":"\t\t} else {"},{"line_number":65,"context_line":"\t\t\tUtil.valueToField(backfilldate, 0, BACKFILL_DATE_FIELD_LENGTH, date.getTime());"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bjk%3D","line":62,"updated":"2011-06-08 17:18:45.000000000","message":"{}","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"\tpublic void setBackfill(Date date) {"},{"line_number":60,"context_line":"\t\tbackfilldate \u003d new byte[BACKFILL_DATE_FIELD_LENGTH];"},{"line_number":61,"context_line":"\t\tif (date \u003d\u003d null) {"},{"line_number":62,"context_line":"\t\t\tfor (int i \u003d 0; i \u003c 8; i++)"},{"line_number":63,"context_line":"\t\t\t\tbackfilldate[i] \u003d -1;"},{"line_number":64,"context_line":"\t\t} else {"},{"line_number":65,"context_line":"\t\t\tUtil.valueToField(backfilldate, 0, BACKFILL_DATE_FIELD_LENGTH, date.getTime());"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bco%3D","line":62,"in_reply_to":"AAABRn%2F%2F%2Bjk%3D","updated":"2011-06-09 19:25:59.000000000","message":"Done","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":72,"context_line":"\t * @return An int value of flags set for this tap message."},{"line_number":73,"context_line":"\t */"},{"line_number":74,"context_line":"\tpublic int getFlags() {"},{"line_number":75,"context_line":"\t\tif (flags.length !\u003d FLAGS_FIELD_LENGTH)"},{"line_number":76,"context_line":"\t\t\treturn 0;"},{"line_number":77,"context_line":"\t\treturn (int) Util.fieldToValue(flags, 0, FLAGS_FIELD_LENGTH);"},{"line_number":78,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bjg%3D","line":75,"updated":"2011-06-08 17:18:45.000000000","message":"{}","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"\t * @return An int value of flags set for this tap message."},{"line_number":73,"context_line":"\t */"},{"line_number":74,"context_line":"\tpublic int getFlags() {"},{"line_number":75,"context_line":"\t\tif (flags.length !\u003d FLAGS_FIELD_LENGTH)"},{"line_number":76,"context_line":"\t\t\treturn 0;"},{"line_number":77,"context_line":"\t\treturn (int) Util.fieldToValue(flags, 0, FLAGS_FIELD_LENGTH);"},{"line_number":78,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bck%3D","line":75,"in_reply_to":"AAABRn%2F%2F%2Bjg%3D","updated":"2011-06-09 19:25:59.000000000","message":"Done","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":84,"context_line":"\tpublic void setVbucketlist(int[] vbs) {"},{"line_number":85,"context_line":"\t\tbyte[] vblist \u003d new byte[(vbs.length + 1) * VBUCKET_LIST_FIELD_LENGTH];"},{"line_number":86,"context_line":"\t\tfor (int i \u003d 0; i \u003c vbs.length + 1; i++) {"},{"line_number":87,"context_line":"\t\t\tif (i \u003d\u003d 0)"},{"line_number":88,"context_line":"\t\t\t\tUtil.valueToField(vblist, 0, VBUCKET_LIST_FIELD_LENGTH, (long) vbs.length);"},{"line_number":89,"context_line":"\t\t\telse if (vbs[i-1] \u003c NUM_VBUCKETS \u0026\u0026 vbs[i-1] \u003e\u003d 0)"},{"line_number":90,"context_line":"\t\t\t\tUtil.valueToField(vblist, (i * VBUCKET_LIST_FIELD_LENGTH), VBUCKET_LIST_FIELD_LENGTH, (long) vbs[i-1]);"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bjc%3D","line":87,"updated":"2011-06-08 17:18:45.000000000","message":"{}\n\n(etc... you can have eclipse help make this do the right thing)","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"\tpublic void setVbucketlist(int[] vbs) {"},{"line_number":85,"context_line":"\t\tbyte[] vblist \u003d new byte[(vbs.length + 1) * VBUCKET_LIST_FIELD_LENGTH];"},{"line_number":86,"context_line":"\t\tfor (int i \u003d 0; i \u003c vbs.length + 1; i++) {"},{"line_number":87,"context_line":"\t\t\tif (i \u003d\u003d 0)"},{"line_number":88,"context_line":"\t\t\t\tUtil.valueToField(vblist, 0, VBUCKET_LIST_FIELD_LENGTH, (long) vbs.length);"},{"line_number":89,"context_line":"\t\t\telse if (vbs[i-1] \u003c NUM_VBUCKETS \u0026\u0026 vbs[i-1] \u003e\u003d 0)"},{"line_number":90,"context_line":"\t\t\t\tUtil.valueToField(vblist, (i * VBUCKET_LIST_FIELD_LENGTH), VBUCKET_LIST_FIELD_LENGTH, (long) vbs[i-1]);"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bcg%3D","line":87,"in_reply_to":"AAABRn%2F%2F%2Bjc%3D","updated":"2011-06-09 19:25:59.000000000","message":"Done","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"c17a0192793a451bf997f1ce735be5846508cd97","unresolved":false,"context_lines":[{"line_number":104,"context_line":"\t\t// TODO: This needs to throw an exception"},{"line_number":105,"context_line":"\t\tlong len \u003d s.length();"},{"line_number":106,"context_line":"\t\tif (len \u003e\u003d (int)Math.pow(256, (double) (KEY_LENGTH_FIELD_LENGTH)))"},{"line_number":107,"context_line":"\t\t\tSystem.out.println(\"Name too big\");"},{"line_number":108,"context_line":"\t\tname \u003d s.getBytes();"},{"line_number":109,"context_line":"\t\tsetKeylength(len);"},{"line_number":110,"context_line":"\t\tencode();"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BjY%3D","line":107,"updated":"2011-06-08 17:18:45.000000000","message":"I think Matt mentioned System.out somewhere -- we can\u0027t do it anywhere.  If this is an IllegalArgumentException, we should throw it.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":104,"context_line":"\t\t// TODO: This needs to throw an exception"},{"line_number":105,"context_line":"\t\tlong len \u003d s.length();"},{"line_number":106,"context_line":"\t\tif (len \u003e\u003d (int)Math.pow(256, (double) (KEY_LENGTH_FIELD_LENGTH)))"},{"line_number":107,"context_line":"\t\t\tSystem.out.println(\"Name too big\");"},{"line_number":108,"context_line":"\t\tname \u003d s.getBytes();"},{"line_number":109,"context_line":"\t\tsetKeylength(len);"},{"line_number":110,"context_line":"\t\tencode();"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BcY%3D","line":107,"in_reply_to":"AAABRn%2F%2F%2BjY%3D","updated":"2011-06-09 19:25:59.000000000","message":"Now throws IllegalArgumentException","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"4289d04ea607b729bcdb0efb79e53d544aff006d","unresolved":false,"context_lines":[{"line_number":114,"context_line":"\t * Used to set an extra value when doing sasl authentication."},{"line_number":115,"context_line":"\t * @param s The value to be set."},{"line_number":116,"context_line":"\t */"},{"line_number":117,"context_line":"\tpublic void setValue(String s) {"},{"line_number":118,"context_line":"\t\tvalue \u003d s.getBytes();"},{"line_number":119,"context_line":"\t\tencode();"},{"line_number":120,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bns%3D","line":117,"updated":"2011-06-08 09:35:46.000000000","message":"This probably can\u0027t work correctly with real SASL.  There is a challenge/response required, and we have code that does that.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"\t * Used to set an extra value when doing sasl authentication."},{"line_number":115,"context_line":"\t * @param s The value to be set."},{"line_number":116,"context_line":"\t */"},{"line_number":117,"context_line":"\tpublic void setValue(String s) {"},{"line_number":118,"context_line":"\t\tvalue \u003d s.getBytes();"},{"line_number":119,"context_line":"\t\tencode();"},{"line_number":120,"context_line":"\t}"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bcc%3D","line":117,"in_reply_to":"AAABRn%2F%2F%2Bns%3D","updated":"2011-06-09 19:25:59.000000000","message":"We don\u0027t use any of the new tap stuff for sasl. This got left over from JTap. Removed this function.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"f1a00eb5f56207658c15cf7022f76620f95f7426","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import net.spy.memcached.compat.log.Logger;"},{"line_number":4,"context_line":"import net.spy.memcached.compat.log.LoggerFactory;"},{"line_number":5,"context_line":"import net.spy.memcached.tapmessage.Util;"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"/**"},{"line_number":8,"context_line":" * A tap request message that is used to start tap streams, perform sasl authentication, and"}],"source_content_type":"text/x-java","patch_set":9,"id":"AAABRn%2F%2F9fg%3D","line":5,"updated":"2011-06-21 23:06:50.000000000","message":"Import from the same package?","commit_id":"bc2f1447f9eafb5fd753f535b8abe699a32a0dae"},{"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":"4c4b4cf15b52be0a6a329b20c2a2412d3d1af207","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import net.spy.memcached.compat.log.Logger;"},{"line_number":4,"context_line":"import net.spy.memcached.compat.log.LoggerFactory;"},{"line_number":5,"context_line":"import net.spy.memcached.tapmessage.Util;"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"/**"},{"line_number":8,"context_line":" * A tap request message that is used to start tap streams, perform sasl authentication, and"}],"source_content_type":"text/x-java","patch_set":9,"id":"AAABRn%2F%2F9d0%3D","line":5,"in_reply_to":"AAABRn%2F%2F9fg%3D","updated":"2011-06-22 00:06:53.000000000","message":"Done","commit_id":"bc2f1447f9eafb5fd753f535b8abe699a32a0dae"},{"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":"4c4b4cf15b52be0a6a329b20c2a2412d3d1af207","unresolved":false,"context_lines":[{"line_number":3,"context_line":"import net.spy.memcached.compat.log.Logger;"},{"line_number":4,"context_line":"import net.spy.memcached.compat.log.LoggerFactory;"},{"line_number":5,"context_line":"import net.spy.memcached.tapmessage.Util;"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"/**"},{"line_number":8,"context_line":" * A tap request message that is used to start tap streams, perform sasl authentication, and"},{"line_number":9,"context_line":" * maintain the health of tap streams."}],"source_content_type":"text/x-java","patch_set":9,"id":"AAABRn%2F%2F9d4%3D","line":6,"updated":"2011-06-22 00:06:53.000000000","message":"And loggers aren\u0027t good here either. Removed these.","commit_id":"bc2f1447f9eafb5fd753f535b8abe699a32a0dae"},{"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":"7ce28a43d8bb3526d9a9cc4bb6e8ce23c57d06ab","unresolved":false,"context_lines":[{"line_number":76,"context_line":"\t\t\t} else if (vbs[i-1] \u003c NUM_VBUCKETS \u0026\u0026 vbs[i-1] \u003e\u003d 0) {"},{"line_number":77,"context_line":"\t\t\t\tUtil.valueToFieldOffest(vblist, (i * VBUCKET_LIST_FIELD_LENGTH), VBUCKET_LIST_FIELD_LENGTH, (long) vbs[i-1]);"},{"line_number":78,"context_line":"\t\t\t} else {"},{"line_number":79,"context_line":"\t\t\t\tgetLogger().info(\"vBucket ignored \" + vbs[i-1] + \"is not a valid vBucket number\");"},{"line_number":80,"context_line":"\t\t\t}"},{"line_number":81,"context_line":"\t\t}"},{"line_number":82,"context_line":"\t\tvbucketlist \u003d vblist;"}],"source_content_type":"text/x-java","patch_set":10,"id":"AAABRn%2F%2F9dA%3D","line":79,"updated":"2011-06-22 01:11:10.000000000","message":"shouldn\u0027t this be error/warning level logging?  why is this info?","commit_id":"251311323a4d1de08bc9d98f9aff413380fb9e6c"}],"src/main/java/net/spy/memcached/tapmessage/ResponseMessage.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":"4289d04ea607b729bcdb0efb79e53d544aff006d","unresolved":false,"context_lines":[{"line_number":47,"context_line":"\t * Gets the value of the flags field if the field exists in the message."},{"line_number":48,"context_line":"\t * @return The flags data."},{"line_number":49,"context_line":"\t */"},{"line_number":50,"context_line":"\tpublic int getFlags() {"},{"line_number":51,"context_line":"\t\tif (FLAGS_OFFSET + FLAGS_FIELD_LENGTH \u003e getExtralength())"},{"line_number":52,"context_line":"\t\t\tthrow new FieldDoesNotExistException(\"Flags field is not defined in this message\");"},{"line_number":53,"context_line":"\t\tint offset \u003d HEADER_LENGTH + FLAGS_OFFSET;"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bng%3D","line":50,"updated":"2011-06-08 09:35:46.000000000","message":"can these be enumerated?  Nicer for the caller to match it to something.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":47,"context_line":"\t * Gets the value of the flags field if the field exists in the message."},{"line_number":48,"context_line":"\t * @return The flags data."},{"line_number":49,"context_line":"\t */"},{"line_number":50,"context_line":"\tpublic int getFlags() {"},{"line_number":51,"context_line":"\t\tif (FLAGS_OFFSET + FLAGS_FIELD_LENGTH \u003e getExtralength())"},{"line_number":52,"context_line":"\t\t\tthrow new FieldDoesNotExistException(\"Flags field is not defined in this message\");"},{"line_number":53,"context_line":"\t\tint offset \u003d HEADER_LENGTH + FLAGS_OFFSET;"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BcQ%3D","line":50,"in_reply_to":"AAABRn%2F%2F%2Bng%3D","updated":"2011-06-09 19:25:59.000000000","message":"They kind of are. We can have multiple flags in the same field so it doesn\u0027t make sense here.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"4289d04ea607b729bcdb0efb79e53d544aff006d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"\t}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"\t/**"},{"line_number":58,"context_line":"\t * Gets the value of the ttl field if the field exists in the message."},{"line_number":59,"context_line":"\t * @return The ttl data."},{"line_number":60,"context_line":"\t */"},{"line_number":61,"context_line":"\tpublic int getTTL() {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bnk%3D","line":58,"updated":"2011-06-08 09:35:46.000000000","message":"If this is truly public, you probably want to say what unit TTL is.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"\t}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"\t/**"},{"line_number":58,"context_line":"\t * Gets the value of the ttl field if the field exists in the message."},{"line_number":59,"context_line":"\t * @return The ttl data."},{"line_number":60,"context_line":"\t */"},{"line_number":61,"context_line":"\tpublic int getTTL() {"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BcM%3D","line":58,"in_reply_to":"AAABRn%2F%2F%2Bnk%3D","updated":"2011-06-09 19:25:59.000000000","message":"Done","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"4289d04ea607b729bcdb0efb79e53d544aff006d","unresolved":false,"context_lines":[{"line_number":148,"context_line":"\t/**"},{"line_number":149,"context_line":"\t * Prints out the details of a response message for debugging purposes."},{"line_number":150,"context_line":"\t */"},{"line_number":151,"context_line":"\tpublic void printMessageDetails() {"},{"line_number":152,"context_line":"\t\tsuper.printMessageDetails();"},{"line_number":153,"context_line":"\t\tSystem.out.printf(\"Engine Private: %d\\n\", getEnginePrivate());"},{"line_number":154,"context_line":"\t\tSystem.out.printf(\"Flags: %d\\n\", getFlags());"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2Bnc%3D","line":151,"updated":"2011-06-08 09:35:46.000000000","message":"We really shouldn\u0027t be touching System.out.  Why not a toString() and then you can debug log it from wherever?","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"5853eff8c9fed982306fd850415df68495a9ae9f","unresolved":false,"context_lines":[{"line_number":148,"context_line":"\t/**"},{"line_number":149,"context_line":"\t * Prints out the details of a response message for debugging purposes."},{"line_number":150,"context_line":"\t */"},{"line_number":151,"context_line":"\tpublic void printMessageDetails() {"},{"line_number":152,"context_line":"\t\tsuper.printMessageDetails();"},{"line_number":153,"context_line":"\t\tSystem.out.printf(\"Engine Private: %d\\n\", getEnginePrivate());"},{"line_number":154,"context_line":"\t\tSystem.out.printf(\"Flags: %d\\n\", getFlags());"}],"source_content_type":"text/x-java","patch_set":3,"id":"AAABRn%2F%2F%2BcI%3D","line":151,"in_reply_to":"AAABRn%2F%2F%2Bnc%3D","updated":"2011-06-09 19:25:59.000000000","message":"Removed this function since I never actually used it in debugging.","commit_id":"d3c08433193880a99b70a15c574bb20b2253cca5"},{"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":"f1a00eb5f56207658c15cf7022f76620f95f7426","unresolved":false,"context_lines":[{"line_number":1,"context_line":"package net.spy.memcached.tapmessage;"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import net.spy.memcached.tapmessage.Util;"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"/**"},{"line_number":6,"context_line":" * A representation of a tap stream message sent from a tap stream server."}],"source_content_type":"text/x-java","patch_set":9,"id":"AAABRn%2F%2F9fY%3D","line":3,"updated":"2011-06-21 23:06:50.000000000","message":"import from the same package?  This one is really obvious!","commit_id":"bc2f1447f9eafb5fd753f535b8abe699a32a0dae"},{"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":"4c4b4cf15b52be0a6a329b20c2a2412d3d1af207","unresolved":false,"context_lines":[{"line_number":1,"context_line":"package net.spy.memcached.tapmessage;"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import net.spy.memcached.tapmessage.Util;"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"/**"},{"line_number":6,"context_line":" * A representation of a tap stream message sent from a tap stream server."}],"source_content_type":"text/x-java","patch_set":9,"id":"AAABRn%2F%2F9ds%3D","line":3,"in_reply_to":"AAABRn%2F%2F9ek%3D","updated":"2011-06-22 00:06:53.000000000","message":"Done","commit_id":"bc2f1447f9eafb5fd753f535b8abe699a32a0dae"},{"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":"024c4a51b3cbd1e8dbaab1d1008f55355f642d5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"package net.spy.memcached.tapmessage;"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import net.spy.memcached.tapmessage.Util;"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"/**"},{"line_number":6,"context_line":" * A representation of a tap stream message sent from a tap stream server."}],"source_content_type":"text/x-java","patch_set":9,"id":"AAABRn%2F%2F9ek%3D","line":3,"in_reply_to":"AAABRn%2F%2F9fY%3D","updated":"2011-06-21 23:08:16.000000000","message":"I rather like using eclipse save hooks to just fix up the imports.","commit_id":"bc2f1447f9eafb5fd753f535b8abe699a32a0dae"}],"src/main/java/net/spy/memcached/tapmessage/Util.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":"f1a00eb5f56207658c15cf7022f76620f95f7426","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\t * @param length The length of the field in the array"},{"line_number":37,"context_line":"\t * @param l The value to be encoded into the byte array"},{"line_number":38,"context_line":"\t */"},{"line_number":39,"context_line":"\tpublic static void valueToField(byte[] buffer, int offset, int length, long l) {"},{"line_number":40,"context_line":"\t\tlong divisor;"},{"line_number":41,"context_line":"\t\tfor (int i \u003d 0; i \u003c length; i++) {"},{"line_number":42,"context_line":"\t\t\tdivisor \u003d (long)Math.pow(256.0, (double) (length - 1 - i));"}],"source_content_type":"text/x-java","patch_set":9,"id":"AAABRn%2F%2F9e8%3D","line":39,"updated":"2011-06-21 23:06:50.000000000","message":"Should this be named differently?  I like the symmetry in the method name, but your comment is quite different.","commit_id":"bc2f1447f9eafb5fd753f535b8abe699a32a0dae"},{"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":"4c4b4cf15b52be0a6a329b20c2a2412d3d1af207","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\t * @param length The length of the field in the array"},{"line_number":37,"context_line":"\t * @param l The value to be encoded into the byte array"},{"line_number":38,"context_line":"\t */"},{"line_number":39,"context_line":"\tpublic static void valueToField(byte[] buffer, int offset, int length, long l) {"},{"line_number":40,"context_line":"\t\tlong divisor;"},{"line_number":41,"context_line":"\t\tfor (int i \u003d 0; i \u003c length; i++) {"},{"line_number":42,"context_line":"\t\t\tdivisor \u003d (long)Math.pow(256.0, (double) (length - 1 - i));"}],"source_content_type":"text/x-java","patch_set":9,"id":"AAABRn%2F%2F9dk%3D","line":39,"in_reply_to":"AAABRn%2F%2F9e8%3D","updated":"2011-06-22 00:06:53.000000000","message":"Now its valueToFieldOffset()","commit_id":"bc2f1447f9eafb5fd753f535b8abe699a32a0dae"}]}
