### Eclipse Workspace Patch 1.0 #P jackrabbit-core Index: src/main/java/org/apache/jackrabbit/core/journal/AbstractJournal.java =================================================================== --- src/main/java/org/apache/jackrabbit/core/journal/AbstractJournal.java (revision 775833) +++ src/main/java/org/apache/jackrabbit/core/journal/AbstractJournal.java (working copy) @@ -210,7 +210,12 @@ } else { RecordConsumer consumer = getConsumer(record.getProducerId()); if (consumer != null) { - consumer.consume(record); + try { + consumer.consume(record); + } catch (IllegalStateException e) { + log.error("Could not synchronize to revision: " + record.getRevision() + " due illegal state of RecordConsumer."); + return; + } } } stopRevision = record.getRevision(); Index: src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java =================================================================== --- src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java (revision 775833) +++ src/main/java/org/apache/jackrabbit/core/cluster/ClusterNode.java (working copy) @@ -855,6 +855,9 @@ } catch (RepositoryException e) { String msg = "Unable to deliver update events: " + e.getMessage(); log.error(msg); + if (e.getCause() instanceof IllegalStateException) { + throw (IllegalStateException) e.getCause(); + } } } @@ -890,6 +893,9 @@ } catch (RepositoryException e) { String msg = "Unable to deliver lock event: " + e.getMessage(); log.error(msg); + if (e.getCause() instanceof IllegalStateException) { + throw (IllegalStateException) e.getCause(); + } } } Index: src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java =================================================================== --- src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java (revision 776322) +++ src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java (working copy) @@ -2181,7 +2181,7 @@ getItemStateProvider().externalUpdate(external, esc); } catch (IllegalStateException e) { String msg = "Unable to deliver events: " + e.getMessage(); - throw new RepositoryException(msg); + throw new RepositoryException(msg, e); } }