public static final H2ONode intern( H2Okey key ) {
    H2ONode h2o = INTERN.get(key);
    if( h2o != null ) return h2o;
    final int idx = UNIQUE.getAndIncrement();
    h2o = new H2ONode(key,idx);
    H2ONode old = INTERN.putIfAbsent(key,h2o);
    if( old != null ) return old;
    synchronized(H2O.class) {
      while( idx >= IDX.length )
        IDX = Arrays.copyOf(IDX,IDX.length<<1);
      IDX[idx] = h2o;
    }
    return h2o;
  }
public static final H2ONode intern ( H2Okey key ) { H2ONode h2o = INTERN . get ( key ) ; if ( h2o != null ) return h2o ; final int idx = UNIQUE . getAndIncrement ( ) ; h2o = new H2ONode ( key , idx ) ; H2ONode old = INTERN . putIfAbsent ( key , h2o ) ; if ( old != null ) return old ; synchronized ( H2O . class ) { while ( idx >= IDX . length ) IDX = Arrays . copyOf ( IDX , IDX . length << 1 ) ; IDX [ idx ] = h2o ; } return h2o ; }
*interned*: there is only one per InetAddress.