Permalink
Commits on Nov 11, 2009
Commits on Nov 6, 2009
  1. Don't throw away an exception.

    dustin committed Oct 18, 2009
  2. Reformatted callback handler.

    dustin committed Oct 18, 2009
  3. Working multi-step auth.

    dustin committed Oct 10, 2009
  4. A slightly better model for SASL auth.

    dustin committed Oct 8, 2009
    I still need to actually attempt a multi-step auth attempt.
  5. Beginnings of SASL support.

    dustin committed Oct 7, 2009
    I've manually verified this is happy with a test server both in the
    auth pass and auth fail cases.  It needs a lot of work before it's
    good, though.
  6. Fix AddrUtilTest#testIPv6Host() hostname assertion.

    blair authored and dustin committed Nov 6, 2009
    This broke on operating systems where the IPv6 localhost is not listed
    in /etc/hosts as "localhost" but as "ip6-localhost" for Ubuntu or
    "localhost6.localdomain6" for Centos 5 and Foresight Linux.
  7. Be more generous in the strings that AddrUtil#getAddresses() will parse.

    blair authored and dustin committed Nov 6, 2009
    The code will now allow multiple whitespace and commas to separate
    "host:port" tokens.
Commits on Oct 27, 2009
  1. Allow MemcachedClient and AsciiOperationFactory extensibility.

    dustin committed Oct 27, 2009
    While I don't encourage people to just randomly start changing stuff,
    I also shouldn't assume I'm smarter than my users.  :)
  2. Some javadoc cleanup in MemcachedClient examples.

    ingenthr authored and dustin committed Oct 27, 2009
    I don't think it'd be a change between Java 1.5 and Java 6, but in any
    event I found the advanced example didn't compile without the changes
    incorporated in the diff in the comments here.  Since binary protocol
    is a feature, I thought this was a good place to show it off too.
  3. Handle operations that are writing and reading at the same time.

    dustin committed Oct 27, 2009
    Especially in bulk cases, the server can be transmitting data from an
    operation and receiving results from it simultaneously.  It's no
    longer sufficient to consider an operation to be either reading or
    writing, but it's likely that it will need to read at the very moment
    it begins writing.
Commits on Oct 23, 2009
Commits on Oct 22, 2009
  1. MemcachedConnection constructor should catch SocketException

    kevin-laff authored and dustin committed Oct 22, 2009
    Running version 2.0.1 on OS X 10.5.7 with JDK 1.5, I observed the
    following exception when to a host that had been accidentally taken
    out of service:
    
    java.net.SocketException: Host is down
    	at sun.nio.ch.Net.connect(Native Method)
    	at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:464)
    	at net.spy.memcached.MemcachedConnection.<init>(MemcachedConnection.java:80)
    	at net.spy.memcached.DefaultConnectionFactory.createConnection(DefaultConnectionFactory.java:84)
    	at net.spy.memcached.MemcachedClient.<init>(MemcachedClient.java:146)
    
    It looks like the 2.4.1 client resolves this by catching
    ConnectException and queuing a reconnect, in this code:
    
    // Initially I had attempted to skirt this by queueing every
    // connect, but it considerably slowed down start time.
    try {
    	if(ch.connect(sa)) {
    		getLogger().info("Connected to %s immediately", qa);
    		connected(qa);
    	} else {
    		getLogger().info("Added %s to connect queue", qa);
    		ops=SelectionKey.OP_CONNECT;
    	}
    	qa.setSk(ch.register(selector, ops, qa));
    	assert ch.isConnected()
    		|| qa.getSk().interestOps() == SelectionKey.OP_CONNECT
    		: "Not connected, and not wanting to connect";
    } catch(ConnectException e) {
    	queueReconnect(qa);
    }
    connections.add(qa);
    
    Given the stack trace I observed, the catch of ConnectException should
    cast a slightly larger net and catch SocketException.
    
    (issue94)
Commits on Oct 14, 2009
  1. Compile targetting 1.5.

    dustin committed Oct 14, 2009
Commits on Oct 13, 2009
  1. Fixed bug in sequence number wrapping (bug90).

    lzimm authored and dustin committed Oct 13, 2009
    If the cas op on seqNumber fails, rv never gets updated and will loop
    until seqNumber wraps at least one more time. proposed fix increments
    seqNumber whether or not the cas succeeds: if another thread was able
    to swap to 0 before we were, we're still good to go.
Commits on Sep 26, 2009
  1. Some doc and style cleanup.

    dustin committed Sep 26, 2009
  2. Moved ketama stuff to util.

    dustin committed Sep 26, 2009
Commits on Sep 24, 2009
  1. Fix javadoc @see links.

    dustin committed Sep 24, 2009
  2. Cleaning up docs a bit.

    dustin committed Sep 24, 2009