public void bundleEvent()

in src/main/java/org/apache/sling/event/impl/jobs/scheduling/ScheduledJobHandler.java [320:356]


    public void bundleEvent() {
        this.lastBundleActivity.set(System.currentTimeMillis());
        this.addTask(new Runnable() {
            @Override
            public void run() {
                final Map<String, Holder> updateJobs = new HashMap<String, ScheduledJobHandler.Holder>();
                synchronized ( scheduledJobs ) {
                    for(final Map.Entry<String, Holder> entry : scheduledJobs.entrySet()) {
                        if ( entry.getValue().info == null && entry.getValue().read < lastBundleActivity.get() ) {
                            updateJobs.put(entry.getKey(), entry.getValue());
                        }
                    }
                }
                if ( !updateJobs.isEmpty() && isRunning.get() ) {
                    ResourceResolver resolver = configuration.createResourceResolver();
                    if ( resolver != null ) {
                        try {
                            for(final Map.Entry<String, Holder> entry : updateJobs.entrySet()) {
                                final String path = configuration.getScheduledJobsPath(true) + entry.getKey();
                                final Resource rsrc = resolver.getResource(path);
                                if ( !isRunning.get() ) {
                                    break;
                                }
                                if ( rsrc != null ) {
                                    synchronized ( scheduledJobs ) {
                                        handleAddOrUpdate(scheduledJobs, rsrc);
                                    }
                                }
                            }
                        } finally {
                            resolver.close();
                        }
                    }
                }
            }
        });
    }