Element previousValue = cache.get( key );
if ( previousValue == null ) {
previousValue = cache.putIfAbsent( new Element( key, initialValue ) );
}
if ( previousValue != null ) {
while ( !cache.replace( previousValue,
new Element( key, ( (Integer) previousValue.getValue() ) + increment ) ) ) {
previousValue = cache.get( key );
}
value.initialize( ( (Integer) previousValue.getValue() ) + increment );
}