You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ma...@apache.org on 2014/11/14 11:43:08 UTC
svn commit: r1639598 - in /ace/trunk/org.apache.ace.log:
src/org/apache/ace/log/server/store/impl/LogStoreImpl.java
test/org/apache/ace/log/server/store/impl/ServerLogStoreTester.java
Author: marrs
Date: Fri Nov 14 10:43:06 2014
New Revision: 1639598
URL: http://svn.apache.org/r1639598
Log:
ACE-494 Fixed and added a test.
Modified:
ace/trunk/org.apache.ace.log/src/org/apache/ace/log/server/store/impl/LogStoreImpl.java
ace/trunk/org.apache.ace.log/test/org/apache/ace/log/server/store/impl/ServerLogStoreTester.java
Modified: ace/trunk/org.apache.ace.log/src/org/apache/ace/log/server/store/impl/LogStoreImpl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.log/src/org/apache/ace/log/server/store/impl/LogStoreImpl.java?rev=1639598&r1=1639597&r2=1639598&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.log/src/org/apache/ace/log/server/store/impl/LogStoreImpl.java (original)
+++ ace/trunk/org.apache.ace.log/src/org/apache/ace/log/server/store/impl/LogStoreImpl.java Fri Nov 14 10:43:06 2014
@@ -112,16 +112,20 @@ public class LogStoreImpl implements Log
in = new BufferedReader(new FileReader(log));
String file = log.getAbsolutePath();
long counter = 0;
+ long lowestID = getLowestIDInternal(descriptor.getTargetID(), descriptor.getStoreID());
for (String line = in.readLine(); line != null; line = in.readLine()) {
Event event = new Event(line);
long id = event.getID();
- if ((counter != -1) && ++counter == id) {
-
+ if (id < lowestID) {
+ continue;
}
- else {
+ if (lowestID > 0 && id == lowestID) {
+ counter = lowestID - 1;
+ }
+ if ((counter == -1) || ++counter != id) {
counter = -1;
}
- if (set.contains(id) && id >= getLowestIDInternal(descriptor.getTargetID(), descriptor.getStoreID())) {
+ if (set.contains(id)) {
result.add(event);
}
}
@@ -155,9 +159,16 @@ public class LogStoreImpl implements Log
private Descriptor getDescriptorInternal(String targetID, long logID, boolean lock) throws IOException {
Long high = m_fileToHighestID.get(getLogFile(targetID, logID).getAbsolutePath());
+ long lowestID = getLowestIDInternal(targetID, logID);
if (high != null) {
- Range r = new Range(1, high);
- return new Descriptor(targetID, logID, new SortedRangeSet(r.toRepresentation()));
+ long low = lowestID > 0 ? lowestID : 1;
+ if (low > high) {
+ return new Descriptor(targetID, logID, new SortedRangeSet(""));
+ }
+ else {
+ Range r = new Range(low, high);
+ return new Descriptor(targetID, logID, new SortedRangeSet(r.toRepresentation()));
+ }
}
Descriptor descriptor = new Descriptor(targetID, logID, SortedRangeSet.FULL_SET);
List<Event> events = lock ? get(descriptor) : getInternal(descriptor);
Modified: ace/trunk/org.apache.ace.log/test/org/apache/ace/log/server/store/impl/ServerLogStoreTester.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.log/test/org/apache/ace/log/server/store/impl/ServerLogStoreTester.java?rev=1639598&r1=1639597&r2=1639598&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.log/test/org/apache/ace/log/server/store/impl/ServerLogStoreTester.java (original)
+++ ace/trunk/org.apache.ace.log/test/org/apache/ace/log/server/store/impl/ServerLogStoreTester.java Fri Nov 14 10:43:06 2014
@@ -164,19 +164,30 @@ public class ServerLogStoreTester {
assert 0 == m_logStore.getLowestID("target", 0) : "Lowest ID should be 0 by default, not: " + m_logStore.getLowestID("target", 1);
assert 0 == m_logStore.getLowestID("target2", 1) : "Lowest ID should be 0 by default, not: " + m_logStore.getLowestID("target", 1);
- for (long id = 0; id < 20; id++) {
+ for (long id = 1; id <= 20; id++) {
events.add(new Event("target", 1, id, System.currentTimeMillis(), AuditEvent.FRAMEWORK_STARTED, props));
}
m_logStore.put(events);
- assert m_logStore.getDescriptors().size() == 1 : "Incorrect amount of ranges returned from store";
+ List<Descriptor> descriptors = m_logStore.getDescriptors();
+ assert descriptors.size() == 1 : "Incorrect amount of ranges returned from store";
+ String range = descriptors.get(0).getRangeSet().toRepresentation();
+ assert range.equals("10-20") : "Incorrect range in descriptor: " + range;
List<Event> stored = getStoredEvents();
- assert stored.size() == 10 : "Exactly 10 events should have been stored";
- m_logStore.setLowestID("target", 1, 19);
+ assert stored.size() == 11 : "Exactly 11 events should have been stored";
+ m_logStore.setLowestID("target", 1, 20);
stored = getStoredEvents();
assert stored.size() == 1 : "Exactly 1 event should have been stored";
- m_logStore.setLowestID("target", 1, 20);
+ descriptors = m_logStore.getDescriptors();
+ assert descriptors.size() == 1 : "Incorrect amount of ranges returned from store";
+ range = descriptors.get(0).getRangeSet().toRepresentation();
+ assert range.equals("20") : "Incorrect range in descriptor: " + range;
+ m_logStore.setLowestID("target", 1, 21);
stored = getStoredEvents();
assert stored.size() == 0 : "No events should have been stored";
+ descriptors = m_logStore.getDescriptors();
+ assert descriptors.size() == 1 : "Incorrect amount of ranges returned from store";
+ range = descriptors.get(0).getRangeSet().toRepresentation();
+ assert range.equals("") : "Incorrect range in descriptor: " + range;
m_logStore.setLowestID("target", 1, 100);
stored = getStoredEvents();
assert stored.size() == 0 : "No events should have been stored";