SLING-7587 - Create a CLI-only tool to sync content
More resilience against ignored and non-existing resources.
diff --git a/shared/modules/api/src/main/java/org/apache/sling/ide/sync/content/impl/DefaultSyncCommandFactory.java b/shared/modules/api/src/main/java/org/apache/sling/ide/sync/content/impl/DefaultSyncCommandFactory.java
index f82504b..fb4374d 100644
--- a/shared/modules/api/src/main/java/org/apache/sling/ide/sync/content/impl/DefaultSyncCommandFactory.java
+++ b/shared/modules/api/src/main/java/org/apache/sling/ide/sync/content/impl/DefaultSyncCommandFactory.java
@@ -209,6 +209,15 @@
public ResourceAndInfo buildResourceAndInfo(WorkspaceResource resource, Repository repository) throws IOException {
+ if ( !resource.exists() ) {
+ return null;
+ }
+
+ if ( resource.isIgnored()) {
+ logger.trace("Skipping team-private resource {0}", resource);
+ return null;
+ }
+
Long modificationTimestamp = (Long) resource.getTransientProperty(PN_IMPORT_MODIFICATION_TIMESTAMP);
if (modificationTimestamp != null && modificationTimestamp >= resource.getLastModified()) {
@@ -217,11 +226,6 @@
return null;
}
- if (resource.isIgnored()) {
- logger.trace("Skipping team-private resource {0}", resource);
- return null;
- }
-
FileInfo info = createFileInfo(resource);
logger.trace("For {0} built fileInfo {1}", resource, info);