in component-dsl/src/main/java/org/apache/aries/component/dsl/internal/ConcurrentDoublyLinkedList.java [953:966]
NodeImpl<E> replace(E newElement) {
for (;;) {
NodeImpl<E> b = getPrev();
NodeImpl<E> f = getNext();
if (b == null || f == null || f.isMarker())
return null;
NodeImpl<E> x = new NodeImpl<E>(newElement, f, b);
if (casNext(f, new NodeImpl<>(x))) {
b.successor(); // to relink b
x.successor(); // to relink f
return x;
}
}
}