Permalink
Commits on Mar 12, 2010
  1. Various Javadoc completeness.

    ingenthr committed Mar 11, 2010
Commits on Mar 5, 2010
  1. Invert the ConnectionFactoryBuilderTest to go with new logic.

    The contribution by Blair Zajac inverts the ConnectionFactoryBuilder
    defaults to match that of the DefaultConnectionFactory.  This updates
    the tests to check for the new default, and test the new change.
    ingenthr committed Feb 17, 2010
  2. fix for useless check statement that is for continuous timeout except…

    …ion counter
    Ahn Seong Hwa committed with ingenthr Feb 6, 2010
  3. New TCP connection timeout feature; if server fails completely, d/c.

    With this change, the MemcachedClient has a method of using the
    connection observer to determine a connected server is consistently
    timing out, indicating it has hard-failed.  This will destroy that
    connection so things may rehash or reconnect, depending on the hash
    behavior.
    Ahn Seong Hwa committed with ingenthr Feb 5, 2010
Commits on Mar 2, 2010
  1. If the String value of the socket address starts with a /, remove it.

    This is just the default stringification, clients can use whatever
    they want, but by default, this seems to provide consistent results
    with libketama.
    committed Mar 2, 2010
Commits on Feb 16, 2010
  1. Fix consistency issue in ConnectionFactoryBuilder.isDaemon()

    DefaultConnectionFactory#isDaemon() is false while
    ConnectionFactoryBuilder builds a ConectionFactory that by default
    returns true for #isDaemon(), so to make them consistent, modify
    ConnectionFactoryBuilder to have #isDaemon() be false.
    blair committed with Feb 16, 2010
Commits on Jan 27, 2010
Commits on Jan 9, 2010
  1. Allow user-specified wait time for availability of queue space.

    This means that instead of raising a queue overflow exception on
    insert, the client can optionally block waiting for space to become
    available instead (with a timeout that will result in the same
    exception).
    kreide committed with Jan 9, 2010
Commits on Nov 11, 2009
Commits on Nov 6, 2009
  1. Don't throw away an exception.

    committed Oct 18, 2009
  2. Reformatted callback handler.

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

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

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

    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.
    committed Oct 7, 2009
  6. Fix AddrUtilTest#testIPv6Host() hostname assertion.

    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.
    blair committed with Nov 6, 2009
  7. Be more generous in the strings that AddrUtil#getAddresses() will parse.

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

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

    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.
    ingenthr committed with Oct 27, 2009
  3. Handle operations that are writing and reading at the same time.

    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.
    committed Oct 27, 2009
Commits on Oct 23, 2009
Commits on Oct 22, 2009
  1. MemcachedConnection constructor should catch SocketException

    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)
    kdawgsf committed with Oct 22, 2009