Author: cziegeler
Date: Thu Dec 31 10:23:46 2009
New Revision: 894802

URL: http://svn.apache.org/viewvc?rev=894802&view=rev
Log:
Create session for event handling lazy

Modified:
    
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java

Modified: 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java?rev=894802&r1=894801&r2=894802&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
 (original)
+++ 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
 Thu Dec 31 10:23:46 2009
@@ -1022,10 +1022,9 @@
      * @see 
javax.jcr.observation.EventListener#onEvent(javax.jcr.observation.EventIterator)
      */
     public void onEvent(EventIterator iter) {
-        // we create an own session here
+        // we create an own session here - this is done lazy
         Session s = null;
         try {
-            s = this.createSession();
             while ( iter.hasNext() ) {
                 final javax.jcr.observation.Event event = iter.nextEvent();
                 if ( event.getType() == 
javax.jcr.observation.Event.PROPERTY_CHANGED
@@ -1043,6 +1042,9 @@
                                 doNotProcess = 
this.deletedJobs.remove(nodePath);
                             }
                             if ( !doNotProcess ) {
+                                if ( s == null ) {
+                                    s = this.createSession();
+                                }
                                 final Node eventNode = (Node) 
s.getItem(nodePath);
                                 if ( !eventNode.isLocked() && 
!eventNode.hasProperty(EventHelper.NODE_PROPERTY_FINISHED)) {
                                     try {
@@ -1070,8 +1072,6 @@
                     }
                 }
             }
-        } catch (RepositoryException re) {
-            this.logger.error("Unable to create a session.", re);
         } finally {
             if ( s != null ) {
                 s.logout();


Reply via email to