You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ch...@apache.org on 2018/01/19 06:26:47 UTC
[sling-org-apache-sling-tracer] 01/01: SLING-6506 - Sling Log
Tracer queries reports Plan that does not match Query statement
This is an automated email from the ASF dual-hosted git repository.
chetanm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-tracer.git
commit c3443eaeb8ec12156947588e9cf05b018c1b5464
Author: Chetan Mehrotra <ch...@apache.org>
AuthorDate: Fri Jan 19 11:51:32 2018 +0530
SLING-6506 - Sling Log Tracer queries reports Plan that does not match Query statement
Refactor the count method
---
.../sling/tracer/internal/JSONRecording.java | 25 ++++------------------
.../org/apache/sling/tracer/internal/Util.java | 18 ++++++++++++++++
.../org/apache/sling/tracer/internal/UtilTest.java | 7 ++++++
3 files changed, 29 insertions(+), 21 deletions(-)
diff --git a/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java b/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
index 192cc04..05d8959 100644
--- a/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
+++ b/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
@@ -54,6 +54,7 @@ import org.slf4j.helpers.FormattingTuple;
import org.slf4j.helpers.MessageFormatter;
import static com.google.common.base.Preconditions.checkArgument;
+import static org.apache.sling.tracer.internal.Util.count;
import static org.apache.sling.tracer.internal.Util.nullSafeString;
import static org.apache.sling.tracer.internal.Util.nullSafeTrim;
@@ -399,33 +400,15 @@ class JSONRecording implements Recording, Comparable<JSONRecording> {
plan = nullSafeString(args[0]);
// Determine number of sub-queries in this UNION query so they can be ignored
- int tmp = count(plan, "*/ union ");
- if (tmp > 0) {
- subPlans = tmp + 1;
+ int unionCount = count(plan, "*/ union ");
+ if (unionCount > 0) {
+ subPlans = unionCount + 1;
}
}
}
}
}
- /**
- * Counts the number of instances the needle in the haystack.
- * @param haystack the string to count the occurrences of the needle in.
- * @param needle the string to count the number of occurrences of.
- * @return the number of occurences the needle appears in the haystack.
- */
- private int count(final String haystack, final String needle) {
- int count = 0;
- int i = 0;
-
- while ((i = haystack.indexOf(needle, i)) != -1) {
- i++;
- count++;
- }
-
- return count;
- }
-
private String determineCaller() {
StackTraceElement caller = queryCallerFinder.determineCaller(Thread.currentThread().getStackTrace());
if (caller != null) {
diff --git a/src/main/java/org/apache/sling/tracer/internal/Util.java b/src/main/java/org/apache/sling/tracer/internal/Util.java
index 617881e..fd32254 100644
--- a/src/main/java/org/apache/sling/tracer/internal/Util.java
+++ b/src/main/java/org/apache/sling/tracer/internal/Util.java
@@ -44,4 +44,22 @@ class Util {
}
return s.trim();
}
+
+ /**
+ * Counts the number of instances the needle in the haystack.
+ * @param haystack the string to count the occurrences of the needle in.
+ * @param needle the string to count the number of occurrences of.
+ * @return the number of occurences the needle appears in the haystack.
+ */
+ static int count(final String haystack, final String needle) {
+ int count = 0;
+ int i = 0;
+
+ while ((i = haystack.indexOf(needle, i)) != -1) {
+ i++;
+ count++;
+ }
+
+ return count;
+ }
}
diff --git a/src/test/java/org/apache/sling/tracer/internal/UtilTest.java b/src/test/java/org/apache/sling/tracer/internal/UtilTest.java
index 8dd878e..829845e 100644
--- a/src/test/java/org/apache/sling/tracer/internal/UtilTest.java
+++ b/src/test/java/org/apache/sling/tracer/internal/UtilTest.java
@@ -46,4 +46,11 @@ public class UtilTest {
assertEquals("foo", Util.nullSafeTrim(" foo"));
}
+ @Test
+ public void count() throws Exception{
+ assertEquals(2, Util.count("she sell sea shells on the sea shore", "sea"));
+ assertEquals(1, Util.count("she sell sea shells on the sea shore", "shore"));
+ assertEquals(0, Util.count("she sell sea shells on the sea shore", "tiger"));
+ }
+
}
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.