You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/07/15 13:32:22 UTC
svn commit: r1691171 -
/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java
Author: cziegeler
Date: Wed Jul 15 11:32:22 2015
New Revision: 1691171
URL: http://svn.apache.org/r1691171
Log:
FELIX-4885 : creation of jobs via OSGI events stops working on Exceptions
Modified:
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java?rev=1691171&r1=1691170&r2=1691171&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java Wed Jul 15 11:32:22 2015
@@ -117,12 +117,7 @@ public class EventAdminBridge
*/
private void addJobs() {
logger.debug("Apache Sling Job Event Bridge started on instance {}", Environment.APPLICATION_ID);
- try {
- this.processWriteQueue();
- } catch (final Throwable t) { //NOSONAR
- logger.error("Bridge thread stopped with exception: " + t.getMessage(), t);
- running = false;
- }
+ this.processWriteQueue();
}
private static String[] IGNORED_CONFIG_PROPERTIES = new String[] {
@@ -139,45 +134,49 @@ public class EventAdminBridge
*/
private void processWriteQueue() {
while ( this.running ) {
- // so let's wait/get the next job from the queue
- Event event = null;
try {
- event = this.writeQueue.take();
- } catch (final InterruptedException e) {
- Thread.currentThread().interrupt();
- this.running = false;
- }
- if ( event != null && this.running ) {
- final JobManager jm = this.jobManager;
- if ( jm == null ) {
- try {
- this.writeQueue.put(event);
- Thread.sleep(500);
- } catch (final InterruptedException ie) {
- Thread.currentThread().interrupt();
- this.running = false;
- }
- } else {
- final String jobTopic = (String)event.getProperty(ResourceHelper.PROPERTY_JOB_TOPIC);
- final String jobName = (String)event.getProperty(JobUtil.PROPERTY_JOB_NAME);
+ // so let's wait/get the next job from the queue
+ Event event = null;
+ try {
+ event = this.writeQueue.take();
+ } catch (final InterruptedException e) {
+ Thread.currentThread().interrupt();
+ this.running = false;
+ }
+ if ( event != null && this.running ) {
+ final JobManager jm = this.jobManager;
+ if ( jm == null ) {
+ try {
+ this.writeQueue.put(event);
+ Thread.sleep(500);
+ } catch (final InterruptedException ie) {
+ Thread.currentThread().interrupt();
+ this.running = false;
+ }
+ } else {
+ final String jobTopic = (String)event.getProperty(ResourceHelper.PROPERTY_JOB_TOPIC);
+ final String jobName = (String)event.getProperty(JobUtil.PROPERTY_JOB_NAME);
- final Map<String, Object> props = new EventPropertiesMap(event);
- props.put(JobImpl.PROPERTY_BRIDGED_EVENT, Boolean.TRUE);
+ final Map<String, Object> props = new EventPropertiesMap(event);
+ props.put(JobImpl.PROPERTY_BRIDGED_EVENT, Boolean.TRUE);
- // check for deprecated/unsupported properties
- for(final String ignoredProp : IGNORED_CONFIG_PROPERTIES) {
- if ( props.containsKey(ignoredProp)) {
- Utility.logDeprecated(logger, "Job " + EventUtil.toString(event) + " is using deprecated and ignored property " + ignoredProp);
- props.remove(ignoredProp);
+ // check for deprecated/unsupported properties
+ for(final String ignoredProp : IGNORED_CONFIG_PROPERTIES) {
+ if ( props.containsKey(ignoredProp)) {
+ Utility.logDeprecated(logger, "Job " + EventUtil.toString(event) + " is using deprecated and ignored property " + ignoredProp);
+ props.remove(ignoredProp);
+ }
+ }
+ if ( jobName != null ) {
+ this.jobManager.addJob(jobTopic, jobName, props);
+ } else {
+ this.jobManager.addJob(jobTopic, props);
}
- }
- if ( jobName != null ) {
- this.jobManager.addJob(jobTopic, jobName, props);
- } else {
- this.jobManager.addJob(jobTopic, props);
}
}
- }
+ } catch (final Throwable t) { //NOSONAR
+ logger.error("Bridge thread got uncaught exception: " + t.getMessage(), t);
+ }
}
}