in mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/builder/OMNamespaceCache.java [28:58]
public OMNamespace getOMNamespace(String uri, String prefix) {
if (uri.isEmpty() && prefix.isEmpty()) {
return null;
}
int index = index(uri, prefix);
while (true) {
OMNamespace ns = items[index];
if (ns == null) {
break;
} else if (ns.getNamespaceURI().equals(uri) && ns.getPrefix().equals(prefix)) {
return ns;
}
if (++index == items.length) {
index = 0;
}
}
if (items.length < size * 4 / 3) {
OMNamespace[] oldItems = items;
items = new OMNamespace[items.length * 2];
for (OMNamespace ns : oldItems) {
if (ns != null) {
items[freeIndex(ns.getNamespaceURI(), ns.getPrefix())] = ns;
}
}
index = freeIndex(uri, prefix);
}
OMNamespace ns = new OMNamespaceImpl(uri, prefix);
items[index] = ns;
size++;
return ns;
}