src/main/java/com/googlecode/objectify/cache/MemcacheServiceRetryProxy.java
@Override
	public Object invoke(Object proxy, Method meth, Object[] args) throws Throwable {
		for (int i = 0; i<this.tries; i++) {
			try {
				return meth.invoke(this.raw, args);
			} catch (InvocationTargetException ex) {
				if (i == (this.tries - 1))
					log.error("Memcache operation failed, giving up", ex);
				else
					log.warn("Error performing memcache operation, retrying: " + meth, ex);
			}
		}
		
		// Will reach this point when we have exhausted our retries.
		return null;
	}
@Override
	public Object invoke(Object proxy, Method meth, Object[] args) throws Throwable {
		for (int i = 0; i<this.tries; i++) {
			try {
				return meth.invoke(this.raw, args);
			} catch (InvocationTargetException ex) {
				if (i == (this.tries - 1))
					log.error("Memcache operation failed, giving up", ex);
				else
					log.warn("Error performing memcache operation, retrying: " + meth, ex);
			}
		}
		
		// Will reach this point when we have exhausted our retries.
		return null;
	}
@ Override public Object invoke ( Object proxy , Method meth , Object [ ] args ) throws Throwable { for ( int i = 0 ; i < this . tries ; i ++ ) { try { return meth . invoke ( this . raw , args ) ; } catch ( InvocationTargetException ex ) { if ( i == ( this . tries - 1 ) ) log . error ( "Memcache operation failed, giving up" , ex ) ; else log . warn ( "Error performing memcache operation, retrying: " + meth , ex ) ; } } // Will reach this point when we have exhausted our retries.
 return null ; }
/* (non-Javadoc)
@see java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
/ * ( non - Javadoc )