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 md...@apache.org on 2013/07/03 15:12:00 UTC
svn commit: r1499384 -
/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
Author: mduerig
Date: Wed Jul 3 13:12:00 2013
New Revision: 1499384
URL: http://svn.apache.org/r1499384
Log:
OAK-144 Implement Observation
Better logging: distinguish between client errors and internal errors when dispatching observation events
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java?rev=1499384&r1=1499383&r2=1499384&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java Wed Jul 3 13:12:00 2013
@@ -196,7 +196,7 @@ class ChangeProcessor implements Runnabl
changes = changeListener.getChanges();
}
} catch (Exception e) {
- log.error("Unable to generate or send events", e);
+ log.debug("Error while dispatching observation events", e);
} finally {
running = null;
synchronized (this) { notifyAll(); }
@@ -242,12 +242,17 @@ class ChangeProcessor implements Runnabl
public void sendEvents() {
Iterator<Event> eventIt = Iterators.concat(events.iterator());
if (eventIt.hasNext()) {
- listener.onEvent(new EventIteratorAdapter(eventIt) {
- @Override
- public boolean hasNext() {
- return !stopping && super.hasNext();
- }
- });
+ try {
+ listener.onEvent(new EventIteratorAdapter(eventIt) {
+ @Override
+ public boolean hasNext() {
+ return !stopping && super.hasNext();
+ }
+ });
+ }
+ catch (Exception e) {
+ log.warn("Unhandled exception in observation listener: " + listener, e);
+ }
events = new ArrayList<Iterator<Event>>(PURGE_LIMIT);
}
}