log.error(ex);
System.err.println(ex);
    public static void main(String[] args) {        long timeout=500; // timeout in ms between puts()/gets()/removes()        String props="UDP(mcast_addr=228.8.8.8;mcast_port=45566;ip_ttl=32;" +                "ucast_recv_buf_size=16000;ucast_send_buf_size=16000;" +                "mcast_send_buf_size=32000;mcast_recv_buf_size=64000;loopback=true):" +                "PING(timeout=2000;num_initial_members=3):" +                "MERGE2(min_interval=5000;max_interval=10000):" +                "FD_SOCK:" +                "VERIFY_SUSPECT(timeout=1500):" +                "pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800;max_xmit_size=8192):" +                "UNICAST(timeout=2000):" +                "pbcast.STABLE(desired_avg_gossip=20000):" +                "FRAG(frag_size=8192;down_thread=false;up_thread=false):" +                "pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=true):" +                "pbcast.STATE_TRANSFER";        for(int i=0; i < args.length; i++) {            if("-help".equals(args[i])) {                help();                return;            }            if("-props".equals(args[i])) {                props=args[++i];                continue;            }            if("-timeout".equals(args[i])) {                timeout=Long.parseLong(args[++i]);                continue;            }        }        try {            DistributedHashtableTest test=new DistributedHashtableTest();            test.start(props, timeout);            test.eventLoop();        }        catch(Exception ex) {            log.error(ex);        }    }