Skip to content

Commit e44adcd

Browse files
committed
fixed script move/rename issue
1 parent 9784974 commit e44adcd

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

app/aem/core/src/main/java/com/cognifide/apm/core/endpoints/ScriptMoveServlet.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,15 @@ protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse
8383
destPath = createUniquePath(destPath, resourceResolver);
8484
session.move(form.getPath(), destPath);
8585
session.save();
86+
LOGGER.info("Item successfully moved from {} to {}", form.getPath(), destPath);
8687
}
8788
if (!containsExtension(form.getPath())) {
8889
ValueMap valueMap = resourceResolver.getResource(destPath).adaptTo(ModifiableValueMap.class);
90+
String prevTitle = valueMap.get(JcrConstants.JCR_TITLE, String.class);
8991
valueMap.put(JcrConstants.JCR_TITLE, form.getRename());
92+
resourceResolver.commit();
93+
LOGGER.info("Item successfully renamed from {} to {}", prevTitle, form.getRename());
9094
}
91-
resourceResolver.commit();
92-
LOGGER.info("Item successfully moved from {} to {}", form.getPath(), destPath);
9395
return ResponseEntity.ok("Item successfully moved");
9496
} catch (Exception e) {
9597
LOGGER.error("Errors while moving item", e);

app/aem/core/src/main/java/com/cognifide/apm/core/services/ScriptsResourceChangeListener.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,17 @@ public void onChange(List<ResourceChange> changes) {
102102

103103
SlingHelper.operateTraced(resolverProvider, resolver -> {
104104
// rename copy/paste folders
105-
changes.stream()
106-
.filter(change -> change.getType() == ResourceChange.ChangeType.ADDED)
107-
.map(change -> resolver.getResource(change.getPath()))
108-
.filter(ScriptsRowModel::isFolder)
109-
.forEach(resource -> {
110-
ValueMap valueMap = resource.adaptTo(ModifiableValueMap.class);
111-
valueMap.put(JcrConstants.JCR_TITLE, resource.getName());
112-
});
105+
boolean onlyAdded = changes.stream()
106+
.allMatch(change -> change.getType() == ResourceChange.ChangeType.ADDED);
107+
if (onlyAdded) {
108+
changes.stream()
109+
.map(change -> resolver.getResource(change.getPath()))
110+
.filter(ScriptsRowModel::isFolder)
111+
.forEach(resource -> {
112+
ValueMap valueMap = resource.adaptTo(ModifiableValueMap.class);
113+
valueMap.put(JcrConstants.JCR_TITLE, resource.getName());
114+
});
115+
}
113116
//register schedule or cron expression scripts
114117
changes.stream()
115118
.filter(change -> StringUtils.endsWith(change.getPath(), Apm.FILE_EXT))

0 commit comments

Comments
 (0)