MCPcopy Create free account
hub / github.com/BaseXdb/basex / delete

Method delete

basex-core/src/main/java/org/basex/index/IndexCache.java:88–111  ·  view source on GitHub ↗

Deletes a cached entry. @param key key

(final byte[] key)

Source from the content-addressed store, hash-verified

86 * @param key key
87 */
88 public void delete(final byte[] key) {
89 final int hash = Token.hashCode(key);
90 rwl.writeLock().lock();
91
92 try {
93 purge();
94 final int i = indexFor(hash, buckets.length);
95 BucketEntry e = buckets[i], prev = e;
96 while(e != null) {
97 final BucketEntry next = e.next;
98 final IndexEntry entry = e.get();
99 if(entry == null) {
100 delete(i, e, prev, next);
101 } else if(e.hash == hash && Token.eq(entry.key, key)) {
102 delete(i, e, prev, next);
103 break;
104 }
105 prev = e;
106 e = next;
107 }
108 } finally {
109 rwl.writeLock().unlock();
110 }
111 }
112
113 /**
114 * Purges stale entries from the cache.

Callers 2

addMethod · 0.95
purgeMethod · 0.95

Calls 7

hashCodeMethod · 0.95
purgeMethod · 0.95
indexForMethod · 0.95
eqMethod · 0.95
writeLockMethod · 0.80
getMethod · 0.65
lockMethod · 0.45

Tested by

no test coverage detected