throw new IllegalArgumentException("Wrong number of keys!");
}
fLock.writeLock().lock();
try {
CacheLevel cacheLevel = fRoot;
// follow the branch
for (int i = 0; i < keys.length - 1; i++) {
Object level = cacheLevel.get(keys[i]);
// does the branch exist?
if (level == null) {
level = createCacheLevel(i + 1);
cacheLevel.put(level, keys[i]);
}
// next level
cacheLevel = (CacheLevel) level;
}
cacheLevel.put(value, keys[keys.length - 1]);
if (log.isDebugEnabled()) {
log.debug(fName + ": put [" + getFormattedKeys(keys) + "] = " + value);
}
} finally {