You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by da...@apache.org on 2014/12/09 17:20:37 UTC
svn commit: r1644106 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java
Author: davide
Date: Tue Dec 9 16:20:37 2014
New Revision: 1644106
URL: http://svn.apache.org/r1644106
Log:
OAK-2328: add logging in OrderedContentMirrorStorateStrategy for better
investigation
Added trace logging for inspecting the exit condition and moved other logging to trace level.
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java?rev=1644106&r1=1644105&r2=1644106&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java Tue Dec 9 16:20:37 2014
@@ -126,19 +126,21 @@ public class OrderedContentMirrorStoreSt
}
private static void printWalkedLanes(final String msg, final String[] walked) {
- String m = (msg == null) ? "" : msg;
- if (walked == null) {
- LOG.debug(m + " walked: null");
- } else {
- for (int i = 0; i < walked.length; i++) {
- LOG.debug("{}walked[{}]: {}", new Object[] { m, i, walked[i] });
+ if (LOG.isTraceEnabled()) {
+ String m = (msg == null) ? "" : msg;
+ if (walked == null) {
+ LOG.trace(m + " walked: null");
+ } else {
+ for (int i = 0; i < walked.length; i++) {
+ LOG.trace("{}walked[{}]: {}", new Object[] { m, i, walked[i] });
+ }
}
}
}
@Override
NodeBuilder fetchKeyNode(@Nonnull NodeBuilder index, @Nonnull String key) {
- LOG.debug("fetchKeyNode() - new item '{}' -----------------------------------------", key);
+ LOG.debug("fetchKeyNode() - === new item '{}'", key);
// this is where the actual adding and maintenance of index's keys happen
NodeBuilder node = null;
NodeBuilder start = index.child(START);
@@ -903,7 +905,7 @@ public class OrderedContentMirrorStoreSt
found = nextkey;
} else {
currentKey = nextkey;
- if (keepWalked && !Strings.isNullOrEmpty(currentKey)) {
+ if (keepWalked && !Strings.isNullOrEmpty(currentKey) && walkedLanes != null) {
walkedLanes[lane] = currentKey;
}
}
@@ -914,7 +916,11 @@ public class OrderedContentMirrorStoreSt
lane = OrderedIndex.LANES - 1;
NodeBuilder currentNode = null;
+ int iteration = 0;
+ boolean exitCondition = true;
+
do {
+ iteration++;
stillLaning = lane > 0;
if (currentNode == null) {
currentNode = index.getChildNode(currentKey);
@@ -941,14 +947,37 @@ public class OrderedContentMirrorStoreSt
} else {
currentKey = nextkey;
currentNode = null;
- if (keepWalked && !Strings.isNullOrEmpty(currentKey)) {
+ if (keepWalked && !Strings.isNullOrEmpty(currentKey) && walkedLanes != null) {
for (int l = lane; l >= 0; l--) {
walkedLanes[l] = currentKey;
}
}
}
}
- } while (((!Strings.isNullOrEmpty(nextkey) && walkingPredicate.apply(nextkey)) || stillLaning) && (found == null));
+
+ exitCondition = ((!Strings.isNullOrEmpty(nextkey) && walkingPredicate
+ .apply(nextkey)) || stillLaning) && (found == null);
+
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("seek()::plain case - --- iteration: {}", iteration);
+ LOG.trace("seek()::plain case - retries: {}, MAX_RETRIES: {}", retries,
+ MAX_RETRIES);
+ LOG.trace("seek()::plain case - lane: {}", lane);
+ LOG.trace("seek()::plain case - currentKey: {}", currentKey);
+ LOG.trace("seek()::plain case - nextkey: {}", nextkey);
+ LOG.trace("seek()::plain case - condition.apply(nextkey): {}",
+ condition.apply(nextkey));
+ LOG.trace("seek()::plain case - found: {}", found);
+ LOG.trace("seek()::plain case - !Strings.isNullOrEmpty(nextkey): {}",
+ !Strings.isNullOrEmpty(nextkey));
+ LOG.trace("seek()::plain case - walkingPredicate.apply(nextkey): {}",
+ walkingPredicate.apply(nextkey));
+ LOG.trace("seek()::plain case - stillLaning: {}", stillLaning);
+ LOG.trace(
+ "seek()::plain case - While Condition: {}",
+ exitCondition);
+ }
+ } while (exitCondition);
}
return found;