This is an automated email from the ASF dual-hosted git repository.
joerghoh pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-event.git
The following commit(s) were added to refs/heads/master by this push:
new 27366e7 SLING-13042 refactoring: switch to try-with-resource (#48)
27366e7 is described below
commit 27366e788d1f02008ad622b3da202813278ef8d9
Author: Jörg Hoh <[email protected]>
AuthorDate: Thu Jan 8 16:50:08 2026 +0100
SLING-13042 refactoring: switch to try-with-resource (#48)
SLING-13042 refactoring: use try-with-resource for the ResourceResolver
---
.../sling/event/impl/jobs/JobManagerImpl.java | 21 ++---
.../sling/event/impl/jobs/queues/JobQueueImpl.java | 5 +-
.../event/impl/jobs/queues/QueueJobCache.java | 5 +-
.../sling/event/impl/jobs/queues/QueueManager.java | 5 +-
.../impl/jobs/scheduling/JobSchedulerImpl.java | 5 +-
.../impl/jobs/scheduling/ScheduledJobHandler.java | 98 ++++++++--------------
.../sling/event/impl/jobs/tasks/CleanUpTask.java | 26 +-----
.../event/impl/jobs/tasks/HistoryCleanUpTask.java | 5 +-
8 files changed, 51 insertions(+), 119 deletions(-)
diff --git a/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
b/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
index 137a18e..df0247c 100644
--- a/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
+++ b/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
@@ -264,8 +264,7 @@ public class JobManagerImpl implements JobManager,
EventHandler, Runnable {
final boolean isHistoryJob =
this.configuration.isStoragePath(job.getResourcePath());
// if history job, simply remove - otherwise move to history!
if (isHistoryJob) {
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
final Resource jobResource =
resolver.getResource(job.getResourcePath());
if (jobResource != null) {
resolver.delete(jobResource);
@@ -279,8 +278,6 @@ public class JobManagerImpl implements JobManager,
EventHandler, Runnable {
} catch (final PersistenceException pe) {
logger.warn("Unable to remove job at " +
job.getResourcePath(), pe);
result = false;
- } finally {
- resolver.close();
}
} else {
final JobHandler jh = new JobHandler(job, null,
this.configuration);
@@ -308,9 +305,8 @@ public class JobManagerImpl implements JobManager,
EventHandler, Runnable {
@Override
public Job getJobById(final String id) {
logger.debug("Getting job by id: {}", id);
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
final StringBuilder buf = new StringBuilder(64);
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
buf.append("/jcr:root");
buf.append(this.configuration.getJobsBasePathWithSlash());
@@ -341,8 +337,6 @@ public class JobManagerImpl implements JobManager,
EventHandler, Runnable {
}
} catch (final QuerySyntaxException qse) {
logger.warn("Query syntax wrong " + buf.toString(), qse);
- } finally {
- resolver.close();
}
logger.debug("Job not found with id: {}", id);
return null;
@@ -397,9 +391,8 @@ public class JobManagerImpl implements JobManager,
EventHandler, Runnable {
|| type == QueryType.GIVEN_UP
|| type == QueryType.STOPPED;
final List<Job> result = new ArrayList<>();
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
final StringBuilder buf = new StringBuilder(64);
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
buf.append(buildBaseQuery(this.configuration.getJobsBasePathWithSlash(), topic,
type, isHistoryQuery));
if (templates != null && templates.length > 0) {
@@ -512,8 +505,6 @@ public class JobManagerImpl implements JobManager,
EventHandler, Runnable {
}
} catch (final QuerySyntaxException qse) {
logger.warn("Query syntax wrong " + buf.toString(), qse);
- } finally {
- resolver.close();
}
return result;
}
@@ -606,8 +597,8 @@ public class JobManagerImpl implements JobManager,
EventHandler, Runnable {
info.queueName,
info.targetId);
}
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
- try {
+
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
final JobImpl job = this.writeJob(resolver, jobTopic,
jobProperties, info);
if (info.targetId != null) {
this.configuration.getAuditLogger().debug("ASSIGN OK {} : {}",
info.targetId, job.getId());
@@ -619,8 +610,6 @@ public class JobManagerImpl implements JobManager,
EventHandler, Runnable {
// something went wrong, so let's log it
this.logger.error(
"Exception during persisting new job '" +
Utility.toString(jobTopic, jobProperties) + "'", re);
- } finally {
- resolver.close();
}
if (errors != null) {
errors.add("Unable to persist new job.");
diff --git
a/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java
b/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java
index 4447da1..d727186 100644
--- a/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java
+++ b/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java
@@ -676,8 +676,7 @@ public class JobQueueImpl implements Queue {
if (!topics.isEmpty()) {
- final ResourceResolver resolver =
this.services.configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
this.services.configuration.createResourceResolver()) {
final Resource baseResource =
resolver.getResource(this.services.configuration.getLocalJobsPath());
// sanity check - should never be null
@@ -714,8 +713,6 @@ public class JobQueueImpl implements Queue {
logger.error("Unable to remove jobs", ignore);
}
}
- } finally {
- resolver.close();
}
}
}
diff --git
a/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueJobCache.java
b/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueJobCache.java
index d5a7a58..9d52738 100644
--- a/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueJobCache.java
+++ b/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueJobCache.java
@@ -224,8 +224,7 @@ public class QueueJobCache {
final Map<String, List<JobImpl>> topicCache = new HashMap<String,
List<JobImpl>>();
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
final Resource baseResource =
resolver.getResource(this.configuration.getLocalJobsPath());
// sanity check - should never be null
if (baseResource != null) {
@@ -237,8 +236,6 @@ public class QueueJobCache {
}
}
}
- } finally {
- resolver.close();
}
orderTopics(topicCache);
diff --git
a/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java
b/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java
index 127def4..bed25a1 100644
--- a/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java
+++ b/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java
@@ -448,8 +448,7 @@ public class QueueManager implements Runnable,
EventHandler, ConfigurationChange
private Set<String> scanTopics() {
final Set<String> topics = new HashSet<>();
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
final Resource baseResource =
resolver.getResource(this.configuration.getLocalJobsPath());
// sanity check - should never be null
@@ -462,8 +461,6 @@ public class QueueManager implements Runnable,
EventHandler, ConfigurationChange
topics.add(topic);
}
}
- } finally {
- resolver.close();
}
return topics;
}
diff --git
a/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java
b/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java
index f3b82db..4871bf6 100644
---
a/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java
+++
b/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java
@@ -475,8 +475,7 @@ public class JobSchedulerImpl
* @param flag The corresponding flag
*/
public void setSuspended(final ScheduledJobInfoImpl info, final boolean
flag) {
- final ResourceResolver resolver =
configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
configuration.createResourceResolver()) {
final StringBuilder sb = new
StringBuilder(this.configuration.getScheduledJobsPath(true));
sb.append(ResourceHelper.filterName(info.getName()));
final String path = sb.toString();
@@ -499,8 +498,6 @@ public class JobSchedulerImpl
} catch (final PersistenceException pe) {
// we ignore the exception if removing fails
ignoreException(pe);
- } finally {
- resolver.close();
}
}
diff --git
a/src/main/java/org/apache/sling/event/impl/jobs/scheduling/ScheduledJobHandler.java
b/src/main/java/org/apache/sling/event/impl/jobs/scheduling/ScheduledJobHandler.java
index 9e82945..f86ce4f 100644
---
a/src/main/java/org/apache/sling/event/impl/jobs/scheduling/ScheduledJobHandler.java
+++
b/src/main/java/org/apache/sling/event/impl/jobs/scheduling/ScheduledJobHandler.java
@@ -140,36 +140,31 @@ public class ScheduledJobHandler implements Runnable {
}
private void scan() {
- final ResourceResolver resolver =
configuration.createResourceResolver();
- if (resolver != null) {
- try {
- logger.debug("Scanning for scheduled jobs...");
- final String path =
this.configuration.getScheduledJobsPath(false);
- final Resource startResource = resolver.getResource(path);
- if (startResource != null) {
- final Map<String, Holder> newScheduledJobs = new
HashMap<String, Holder>();
- synchronized (this.scheduledJobs) {
- for (final Resource rsrc :
startResource.getChildren()) {
- if (!isRunning.get()) {
- break;
- }
- handleAddOrUpdate(newScheduledJobs, rsrc);
+ try (ResourceResolver resolver =
configuration.createResourceResolver()) {
+ logger.debug("Scanning for scheduled jobs...");
+ final String path = this.configuration.getScheduledJobsPath(false);
+ final Resource startResource = resolver.getResource(path);
+ if (startResource != null) {
+ final Map<String, Holder> newScheduledJobs = new
HashMap<String, Holder>();
+ synchronized (this.scheduledJobs) {
+ for (final Resource rsrc : startResource.getChildren()) {
+ if (!isRunning.get()) {
+ break;
}
- if (isRunning.get()) {
- for (final Holder h : this.scheduledJobs.values())
{
- if (h.info != null) {
- this.jobScheduler.unscheduleJob(h.info);
- }
+ handleAddOrUpdate(newScheduledJobs, rsrc);
+ }
+ if (isRunning.get()) {
+ for (final Holder h : this.scheduledJobs.values()) {
+ if (h.info != null) {
+ this.jobScheduler.unscheduleJob(h.info);
}
- this.scheduledJobs.clear();
- this.scheduledJobs.putAll(newScheduledJobs);
}
+ this.scheduledJobs.clear();
+ this.scheduledJobs.putAll(newScheduledJobs);
}
}
- logger.debug("Finished scanning for scheduled jobs...");
- } finally {
- resolver.close();
}
+ logger.debug("Finished scanning for scheduled jobs...");
}
}
@@ -237,8 +232,7 @@ public class ScheduledJobHandler implements Runnable {
final boolean suspend,
final List<ScheduleInfoImpl> scheduleInfos)
throws PersistenceException {
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
// create properties
final Map<String, Object> properties = new HashMap<String,
Object>();
@@ -286,8 +280,6 @@ public class ScheduledJobHandler implements Runnable {
properties.put(ResourceHelper.PROPERTY_SCHEDULE_INFO,
scheduleInfos);
return properties;
- } finally {
- resolver.close();
}
}
@@ -330,23 +322,18 @@ public class ScheduledJobHandler implements Runnable {
}
}
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);
- }
+ try (ResourceResolver resolver =
configuration.createResourceResolver()) {
+ 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();
}
}
}
@@ -386,17 +373,12 @@ public class ScheduledJobHandler implements Runnable {
@Override
public void run() {
if (isRunning.get()) {
- final ResourceResolver resolver =
configuration.createResourceResolver();
- if (resolver != null) {
- try {
- final Resource rsrc = resolver.getResource(path);
- if (rsrc != null) {
- synchronized (scheduledJobs) {
- handleAddOrUpdate(scheduledJobs, rsrc);
- }
+ try (ResourceResolver resolver =
configuration.createResourceResolver()) {
+ final Resource rsrc = resolver.getResource(path);
+ if (rsrc != null) {
+ synchronized (scheduledJobs) {
+ handleAddOrUpdate(scheduledJobs, rsrc);
}
- } finally {
- resolver.close();
}
}
}
@@ -461,8 +443,7 @@ public class ScheduledJobHandler implements Runnable {
public void remove(final ScheduledJobInfoImpl info) {
final String scheduleKey = ResourceHelper.filterName(info.getName());
- final ResourceResolver resolver =
configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
configuration.createResourceResolver()) {
final StringBuilder sb = new
StringBuilder(configuration.getScheduledJobsPath(true));
sb.append(scheduleKey);
final String path = sb.toString();
@@ -475,8 +456,6 @@ public class ScheduledJobHandler implements Runnable {
} catch (final PersistenceException pe) {
// we ignore the exception if removing fails
ignoreException(pe);
- } finally {
- resolver.close();
}
synchronized (this.scheduledJobs) {
@@ -489,8 +468,7 @@ public class ScheduledJobHandler implements Runnable {
public void updateSchedule(final String scheduleName, final
Collection<ScheduleInfo> scheduleInfo) {
- final ResourceResolver resolver =
configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
configuration.createResourceResolver()) {
final String scheduleKey = ResourceHelper.filterName(scheduleName);
final StringBuilder sb = new
StringBuilder(configuration.getScheduledJobsPath(true));
@@ -526,8 +504,6 @@ public class ScheduledJobHandler implements Runnable {
logger.warn("Unable to update scheduled job " +
scheduleName, pe);
}
}
- } finally {
- resolver.close();
}
}
diff --git
a/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java
b/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java
index 70b5d50..d954983 100644
--- a/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java
+++ b/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java
@@ -143,8 +143,7 @@ public class CleanUpTask {
}
private void historyCleanUpRemovedJobs(Calendar olderThan) {
- ResourceResolver resolver =
this.configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
HistoryCleanUpTask.cleanup(
olderThan,
resolver,
@@ -186,8 +185,6 @@ public class CleanUpTask {
Arrays.asList(Job.JobState.DROPPED.name(),
Job.JobState.ERROR.name()));
} catch (PersistenceException e) {
this.logger.warn("Exception during job resource tree cleanup.", e);
- } finally {
- resolver.close();
}
}
@@ -198,8 +195,7 @@ public class CleanUpTask {
*/
private void simpleEmptyFolderCleanup(final TopologyCapabilities caps,
final String basePath) {
this.logger.debug("Cleaning up job resource tree: looking for empty
folders");
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
final Calendar cleanUpDate = getCalendarInstance();
// go back five minutes
cleanUpDate.add(Calendar.MINUTE, -5);
@@ -252,8 +248,6 @@ public class CleanUpTask {
} catch (final PersistenceException pe) {
// in the case of an error, we just log this as a warning
this.logger.warn("Exception during job resource tree cleanup.",
pe);
- } finally {
- resolver.close();
}
}
@@ -262,11 +256,7 @@ public class CleanUpTask {
*/
private void fullEmptyFolderCleanup(final TopologyCapabilities caps, final
String basePath) {
this.logger.debug("Cleaning up job resource tree: removing ALL empty
folders");
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
- if (resolver == null) {
- return;
- }
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
final Resource baseResource = resolver.getResource(basePath);
// sanity check - should never be null
if (baseResource != null) {
@@ -376,8 +366,6 @@ public class CleanUpTask {
} catch (final PersistenceException pe) {
// in the case of an error, we just log this as a warning
this.logger.warn("Exception during job resource tree cleanup.",
pe);
- } finally {
- resolver.close();
}
}
@@ -386,11 +374,7 @@ public class CleanUpTask {
* @param assginedJobsPath The root path for the assigned jobs
*/
private void cleanUpInstanceIdFolders(final TopologyCapabilities caps,
final String assginedJobsPath) {
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
- if (resolver == null) {
- return;
- }
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
final Resource baseResource =
resolver.getResource(assginedJobsPath);
// sanity check - should never be null
if (baseResource != null) {
@@ -445,8 +429,6 @@ public class CleanUpTask {
} catch (final PersistenceException e) {
// in the case of an error, we just log this as a warning
this.logger.warn("Exception during job resource tree cleanup.", e);
- } finally {
- resolver.close();
}
}
diff --git
a/src/main/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpTask.java
b/src/main/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpTask.java
index 9a94423..3be923f 100644
---
a/src/main/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpTask.java
+++
b/src/main/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpTask.java
@@ -98,8 +98,7 @@ public class HistoryCleanUpTask implements JobExecutor {
} else {
stateList = null;
}
- final ResourceResolver resolver =
this.configuration.createResourceResolver();
- try {
+ try (ResourceResolver resolver =
this.configuration.createResourceResolver()) {
if (stateList == null ||
stateList.contains(Job.JobState.SUCCEEDED.name())) {
this.cleanup(removeDate, resolver, context,
configuration.getStoredSuccessfulJobsPath(), topics, null);
}
@@ -115,8 +114,6 @@ public class HistoryCleanUpTask implements JobExecutor {
} catch (final PersistenceException pe) {
// in the case of an error, we just log this as a warning
this.logger.warn("Exception during job resource tree cleanup.",
pe);
- } finally {
- resolver.close();
}
return context.result().succeeded();
}