Commits on May 27, 2008
  1. Killed off a slightly elusive bug that was causing sporatic cancellat…

    dustin committed May 27, 2008
    Whenever a read returned in the binary protocol without having read
    enough bytes to fill a header packet, an NPE would be fired that would
    cause us to disconnect from the server and cancel all in-flight
    This happened occasionally in one of my tests and was rather a pain to
    track down.  It likely never affected anyone since I doubt anyone is
    actually using the binary protocol anywhere today.
Commits on May 14, 2008
  1. Allow the input, op read and op write queues to be individually speci…

    dustin committed May 14, 2008
    By default, the read queue is 10% larger than the input queue.
    With a sufficiently large op read queue, it's possible to never
    internally overflow, but correct values are likely
  2. Updated delete documentation.

    dustin committed May 14, 2008
  3. Read before writes and expect IllegalStateException.

    dustin committed May 14, 2008
    These are two measures that are helping with the queue overflow
    Firstly, the IllegalStateException is thrown whenever you attempted to
    add to a queue that's full.  If that happens internally, I don't want
    the IO thread to crash, so I add it to the normal ``expected
    exceptions'' list.
    Secondly, reading before writing helps keep the read buffer ready for
    new data.  When writing first, the write will have to transition to a
    read and may cause the read buffer to overflow.  It still may happen,
    but by servicing the reads first I can at least get the complete ones
    popped out before piling new ones in (since writes are almost always
    smaller and likely to transition).
Commits on May 13, 2008
Commits on May 11, 2008
  1. Turning the timeouts way up during tests.

    dustin committed May 11, 2008
    I manage to do something that slows stuff down in my full test plan
    which leads to spurious failures.
    This may be hinting at a bug of some type, or perhaps some bad
    defaults, but this code isn't attempting to test timeouts so they
    should never get in the way.
  2. buildr 1.3 is not ready for me.

    dustin committed May 11, 2008
    Revert "Updates for a newer version of buildr."
    This reverts commit 0fcb055.
  3. Smarter assertion check test.

    dustin committed May 11, 2008
    The previous one passing when assertions weren't enabled.
    Must test the tests.
  4. Test fix. Invalid connections shouldn't fail to shut down.

    dustin committed May 11, 2008
    I think there may be a bigger bug around this, but it only occurs when
    trying to shut down a connection that shouldn't've started due to
    someone writing a broken connection factory, so I think we can live
    with it.
Commits on May 9, 2008
Commits on May 5, 2008
Commits on May 3, 2008
  1. Added some negative tests for prepend/append and found some bugs.

    dustin committed May 3, 2008
    Turns out the ``not found'' error for prepend and append is different
    from that of other commands so I needed to make a case for it.
  2. Removed some dead code.

    dustin committed May 3, 2008
  3. Make zero byte packing optional in transcoder utils.

    dustin committed May 3, 2008
    This is primarily because I don't know for sure the Whalin client
    would know what to do if it saw a 0 byte long.
  4. Some tests on the parent class of the serializing transcoders.

    dustin committed May 3, 2008
    This helps me ensure the contract of certain methods, and (shockingly)
    found some minor bugs in edge cases.
  5. Implementation of append and prepend.

    dustin committed May 3, 2008
    I've got a test failure in ascii append/prepend and I haven't quite
    figured out why it gives an EXISTS error, so this may be broken there.
    Works fine in binary including with CAS operations.
  6. Constants should be final.

    dustin committed May 3, 2008
  7. Tests classes must end in Test in order to get picked up.

    dustin committed May 3, 2008
    I knew pushing at that point was a dumb idea.
  8. Tests for timeout operations.

    dustin committed May 3, 2008
  9. Moved operation timeout into the connection factory.

    dustin committed May 3, 2008
    It shouldn't change at runtime in a client, as the current model was
    not thread safe.  In order for this to be dynamically reconfigurable,
    the field either needs to be volatile or access to the value must be
    By having the value be declared final and removing the mutators and
    accessors, we can guarantee correctness.
  10. Speed up the graceful shutdown test slightly.

    dustin committed May 3, 2008
    This one has been spuriously failing me for a while.  I'd like it to
    consistently run, but I'll settle for 3x more likely for now.