You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by rw...@apache.org on 2013/03/19 08:35:24 UTC

svn commit: r1458167 - /stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java

Author: rwesten
Date: Tue Mar 19 07:35:23 2013
New Revision: 1458167

URL: http://svn.apache.org/r1458167
Log:
fix for STANBOL-985 - the EventJobManager now does no longer fail if the execution of the chain finishes before the main threads starts waiting for the completion

Modified:
    stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java

Modified: stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java?rev=1458167&r1=1458166&r2=1458167&view=diff
==============================================================================
--- stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java (original)
+++ stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java Tue Mar 19 07:35:23 2013
@@ -421,33 +421,27 @@ public class EnhancementJobHandler imple
         }
 
         public boolean waitForCompletion(int maxEnhancementJobWaitTime) {
-            boolean acquire = false;
+            boolean finished = false;
             if(semaphore.availablePermits() < 1){
                 // The only permit is taken by the EnhancementJobHander
                 try {
-                    acquire = semaphore.tryAcquire(1,
+                    finished = semaphore.tryAcquire(1,
                         Math.max(MIN_WAIT_TIME, maxEnhancementJobWaitTime),TimeUnit.MILLISECONDS);
                 } catch (InterruptedException e) {
                     //interupted
-                    acquire = false;
+                    finished = false;
                 }
             } else if(!hasCompleted()){
-                int wait = Math.max(100, maxEnhancementJobWaitTime/10);
-                log.warn("Unexpected permit available for Semaphore of "
-                    + "EnhancementJob of ContentItem {}. Fallback to wait({})"
-                    + "for detecting if Job has finished. While the fallback "
-                    + "should ensure correct Enhancement results this indicates a "
-                    + "Bug in the EventHobManager. Please feel free to report "
-                    + "This on dev@stanbol.apache.org or the Apache Stanbol "
-                    + "Issue Tracker.",enhancementJob.getContentItem().getUri(),wait);
-                try {
-                    Thread.currentThread().wait(wait);
-                } catch (InterruptedException e) {
-                    //interupted
-                }
-                acquire = true;
-            }// else completed
-            return acquire;
+                log.error("Unexpected {} permit(s) (expected = 0) available for "
+                    + "Semaphore of  EnhancementJob of ContentItem {}. Please "
+                    + "report this on dev@stanbol.apache.org and/or the Apache "
+                    + "Stanbol Issue Tracker.", semaphore.availablePermits(),
+                    enhancementJob.getContentItem().getUri());
+                finished = false;
+            } else { //already completed
+                finished = true;
+            }
+            return finished;
         }
     }