diff --git a/amps/ags/pom.xml b/amps/ags/pom.xml
index c1d02841ba..0df00eafd4 100644
--- a/amps/ags/pom.xml
+++ b/amps/ags/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo-amps
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/amps/ags/rm-automation/pom.xml b/amps/ags/rm-automation/pom.xml
index 5605da7449..87473c7ea1 100644
--- a/amps/ags/rm-automation/pom.xml
+++ b/amps/ags/rm-automation/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-governance-services-community-parent
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/amps/ags/rm-automation/rm-automation-community-rest-api/pom.xml b/amps/ags/rm-automation/rm-automation-community-rest-api/pom.xml
index f8419f396a..942e7930a0 100644
--- a/amps/ags/rm-automation/rm-automation-community-rest-api/pom.xml
+++ b/amps/ags/rm-automation/rm-automation-community-rest-api/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-governance-services-automation-community-repo
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/amps/ags/rm-community/pom.xml b/amps/ags/rm-community/pom.xml
index 7b996f7e42..16ea3b1eee 100644
--- a/amps/ags/rm-community/pom.xml
+++ b/amps/ags/rm-community/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-governance-services-community-parent
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/amps/ags/rm-community/rm-community-repo/pom.xml b/amps/ags/rm-community/rm-community-repo/pom.xml
index 1604bf3b70..0683e30d5f 100644
--- a/amps/ags/rm-community/rm-community-repo/pom.xml
+++ b/amps/ags/rm-community/rm-community-repo/pom.xml
@@ -8,7 +8,7 @@
org.alfresco
alfresco-governance-services-community-repo-parent
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/amps/ags/rm-community/rm-community-rest-api-explorer/pom.xml b/amps/ags/rm-community/rm-community-rest-api-explorer/pom.xml
index b1bf6b2fef..84df7861ac 100644
--- a/amps/ags/rm-community/rm-community-rest-api-explorer/pom.xml
+++ b/amps/ags/rm-community/rm-community-rest-api-explorer/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-governance-services-community-repo-parent
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/amps/pom.xml b/amps/pom.xml
index 23663d62f3..56be8644ae 100644
--- a/amps/pom.xml
+++ b/amps/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/amps/share-services/pom.xml b/amps/share-services/pom.xml
index 75e0be2d9a..ad4d73e193 100644
--- a/amps/share-services/pom.xml
+++ b/amps/share-services/pom.xml
@@ -8,7 +8,7 @@
org.alfresco
alfresco-community-repo-amps
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/core/pom.xml b/core/pom.xml
index 68e79460e6..10352e67d8 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/data-model/pom.xml b/data-model/pom.xml
index 0a8150baf5..1ffd217da6 100644
--- a/data-model/pom.xml
+++ b/data-model/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/mmt/pom.xml b/mmt/pom.xml
index 8208d96d56..b0a6f3f1b3 100644
--- a/mmt/pom.xml
+++ b/mmt/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/packaging/distribution/pom.xml b/packaging/distribution/pom.xml
index fc021a0e98..23e74d0127 100644
--- a/packaging/distribution/pom.xml
+++ b/packaging/distribution/pom.xml
@@ -9,6 +9,6 @@
org.alfresco
alfresco-community-repo-packaging
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/packaging/docker-alfresco/pom.xml b/packaging/docker-alfresco/pom.xml
index 136c0d3a9b..54d0d62f87 100644
--- a/packaging/docker-alfresco/pom.xml
+++ b/packaging/docker-alfresco/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo-packaging
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/packaging/pom.xml b/packaging/pom.xml
index 7976eca723..eda30c59f9 100644
--- a/packaging/pom.xml
+++ b/packaging/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/packaging/tests/pom.xml b/packaging/tests/pom.xml
index 8db3306b21..05240e8f49 100644
--- a/packaging/tests/pom.xml
+++ b/packaging/tests/pom.xml
@@ -6,7 +6,7 @@
org.alfresco
alfresco-community-repo-packaging
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/packaging/tests/tas-cmis/pom.xml b/packaging/tests/tas-cmis/pom.xml
index c03898bf9d..b3b4778716 100644
--- a/packaging/tests/tas-cmis/pom.xml
+++ b/packaging/tests/tas-cmis/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo-tests
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/packaging/tests/tas-email/pom.xml b/packaging/tests/tas-email/pom.xml
index 9f5d5d9df1..62afd2ea2b 100644
--- a/packaging/tests/tas-email/pom.xml
+++ b/packaging/tests/tas-email/pom.xml
@@ -9,7 +9,7 @@
org.alfresco
alfresco-community-repo-tests
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/packaging/tests/tas-integration/pom.xml b/packaging/tests/tas-integration/pom.xml
index 5e0e02296b..50fe735379 100644
--- a/packaging/tests/tas-integration/pom.xml
+++ b/packaging/tests/tas-integration/pom.xml
@@ -9,7 +9,7 @@
org.alfresco
alfresco-community-repo-tests
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/packaging/tests/tas-restapi/pom.xml b/packaging/tests/tas-restapi/pom.xml
index b2c0a149b9..33742b7649 100644
--- a/packaging/tests/tas-restapi/pom.xml
+++ b/packaging/tests/tas-restapi/pom.xml
@@ -8,7 +8,7 @@
org.alfresco
alfresco-community-repo-tests
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/packaging/tests/tas-webdav/pom.xml b/packaging/tests/tas-webdav/pom.xml
index 012d44f2be..14dbaee77c 100644
--- a/packaging/tests/tas-webdav/pom.xml
+++ b/packaging/tests/tas-webdav/pom.xml
@@ -9,7 +9,7 @@
org.alfresco
alfresco-community-repo-tests
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/packaging/war/pom.xml b/packaging/war/pom.xml
index 73eb9c506f..1714ee4925 100644
--- a/packaging/war/pom.xml
+++ b/packaging/war/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo-packaging
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/remote-api/pom.xml b/remote-api/pom.xml
index 26c8d784b8..67b162c25a 100644
--- a/remote-api/pom.xml
+++ b/remote-api/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/repository/pom.xml b/repository/pom.xml
index 8c4e7a3c18..ec079603c8 100644
--- a/repository/pom.xml
+++ b/repository/pom.xml
@@ -7,7 +7,7 @@
org.alfresco
alfresco-community-repo
- 25.2.0.41-SNAPSHOT
+ 25.2.0.46-SNAPSHOT
diff --git a/repository/src/main/java/org/alfresco/repo/content/transform/AbstractLocalTransform.java b/repository/src/main/java/org/alfresco/repo/content/transform/AbstractLocalTransform.java
index d1c7309673..269b4524f8 100644
--- a/repository/src/main/java/org/alfresco/repo/content/transform/AbstractLocalTransform.java
+++ b/repository/src/main/java/org/alfresco/repo/content/transform/AbstractLocalTransform.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
- * Copyright (C) 2019 - 2022 Alfresco Software Limited
+ * Copyright (C) 2019 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -34,12 +34,12 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.alfresco.error.AlfrescoRuntimeException;
-import org.alfresco.service.cmr.repository.*;
import org.alfresco.service.cmr.repository.ContentIOException;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.MimetypeService;
import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.transform.config.TransformOption;
import org.alfresco.transform.config.TransformOptionGroup;
import org.alfresco.transform.config.TransformOptionValue;
diff --git a/repository/src/main/java/org/alfresco/repo/content/transform/LocalFailoverTransform.java b/repository/src/main/java/org/alfresco/repo/content/transform/LocalFailoverTransform.java
index 1ca56dd151..f4ec8642cb 100644
--- a/repository/src/main/java/org/alfresco/repo/content/transform/LocalFailoverTransform.java
+++ b/repository/src/main/java/org/alfresco/repo/content/transform/LocalFailoverTransform.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
- * Copyright (C) 2019 - 2022 Alfresco Software Limited
+ * Copyright (C) 2019 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -32,7 +32,12 @@ import java.util.Map;
import java.util.Set;
import org.alfresco.repo.content.filestore.FileContentWriter;
-import org.alfresco.service.cmr.repository.*;
+import org.alfresco.service.cmr.repository.ContentIOException;
+import org.alfresco.service.cmr.repository.ContentReader;
+import org.alfresco.service.cmr.repository.ContentWriter;
+import org.alfresco.service.cmr.repository.MimetypeService;
+import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.transform.config.TransformOption;
import org.alfresco.util.TempFileProvider;
diff --git a/repository/src/main/java/org/alfresco/repo/content/transform/LocalPassThroughTransform.java b/repository/src/main/java/org/alfresco/repo/content/transform/LocalPassThroughTransform.java
index 8b27ccc4bd..17ca9731ae 100644
--- a/repository/src/main/java/org/alfresco/repo/content/transform/LocalPassThroughTransform.java
+++ b/repository/src/main/java/org/alfresco/repo/content/transform/LocalPassThroughTransform.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
- * Copyright (C) 2005 - 2022 Alfresco Software Limited
+ * Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -36,7 +36,12 @@ import java.util.Map;
import java.util.Set;
import org.alfresco.repo.content.MimetypeMap;
-import org.alfresco.service.cmr.repository.*;
+import org.alfresco.service.cmr.repository.ContentIOException;
+import org.alfresco.service.cmr.repository.ContentReader;
+import org.alfresco.service.cmr.repository.ContentWriter;
+import org.alfresco.service.cmr.repository.MimetypeService;
+import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.transform.config.SupportedSourceAndTarget;
import org.alfresco.transform.config.TransformOption;
import org.alfresco.transform.config.Transformer;
diff --git a/repository/src/main/java/org/alfresco/repo/content/transform/LocalPipelineTransform.java b/repository/src/main/java/org/alfresco/repo/content/transform/LocalPipelineTransform.java
index 5d935a2c45..0ada671e95 100644
--- a/repository/src/main/java/org/alfresco/repo/content/transform/LocalPipelineTransform.java
+++ b/repository/src/main/java/org/alfresco/repo/content/transform/LocalPipelineTransform.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
- * Copyright (C) 2005 - 2022 Alfresco Software Limited
+ * Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
@@ -34,7 +34,11 @@ import java.util.Map;
import java.util.Set;
import org.alfresco.repo.content.filestore.FileContentWriter;
-import org.alfresco.service.cmr.repository.*;
+import org.alfresco.service.cmr.repository.ContentReader;
+import org.alfresco.service.cmr.repository.ContentWriter;
+import org.alfresco.service.cmr.repository.MimetypeService;
+import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.transform.config.TransformOption;
import org.alfresco.util.TempFileProvider;
diff --git a/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransformServiceRegistry.java b/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransformServiceRegistry.java
index c47a598c9e..1f7c3a7e0f 100644
--- a/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransformServiceRegistry.java
+++ b/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransformServiceRegistry.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
- * Copyright (C) 2019 - 2023 Alfresco Software Limited
+ * Copyright (C) 2019 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
diff --git a/repository/src/main/java/org/alfresco/repo/site/SiteServiceImpl.java b/repository/src/main/java/org/alfresco/repo/site/SiteServiceImpl.java
index 58cc093a99..ddac91298f 100644
--- a/repository/src/main/java/org/alfresco/repo/site/SiteServiceImpl.java
+++ b/repository/src/main/java/org/alfresco/repo/site/SiteServiceImpl.java
@@ -914,7 +914,7 @@ public class SiteServiceImpl extends AbstractLifecycleBean implements SiteServic
String[] tokenizedFilter = SearchLanguageConversion.tokenizeString(escNameFilter);
// cm:name
- query.append(" cm:name:\" ");
+ query.append(" cm:name:\"");
for (int i = 0; i < tokenizedFilter.length; i++)
{
if (i != 0) // Not first element
diff --git a/repository/src/test/java/org/alfresco/repo/site/SiteServiceImplTest.java b/repository/src/test/java/org/alfresco/repo/site/SiteServiceImplTest.java
index 26b4e59e76..64224a13ba 100644
--- a/repository/src/test/java/org/alfresco/repo/site/SiteServiceImplTest.java
+++ b/repository/src/test/java/org/alfresco/repo/site/SiteServiceImplTest.java
@@ -25,26 +25,19 @@
*/
package org.alfresco.repo.site;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.*;
import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
+import java.util.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mockito;
import org.springframework.extensions.surf.util.I18NUtil;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.transaction.annotation.Transactional;
@@ -56,6 +49,8 @@ import org.alfresco.query.PagingRequest;
import org.alfresco.query.PagingResults;
import org.alfresco.repo.admin.SysAdminParams;
import org.alfresco.repo.admin.SysAdminParamsImpl;
+import org.alfresco.repo.cache.MemoryCache;
+import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.dictionary.DictionaryDAO;
import org.alfresco.repo.dictionary.M2Model;
import org.alfresco.repo.dictionary.M2Property;
@@ -65,6 +60,7 @@ import org.alfresco.repo.management.subsystems.ChildApplicationContextFactory;
import org.alfresco.repo.node.archive.NodeArchiveService;
import org.alfresco.repo.node.getchildren.FilterProp;
import org.alfresco.repo.node.getchildren.FilterPropString;
+import org.alfresco.repo.search.EmptyResultSet;
import org.alfresco.repo.security.authentication.AuthenticationComponent;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
@@ -78,21 +74,10 @@ import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.dictionary.TypeDefinition;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.model.FileInfo;
-import org.alfresco.service.cmr.repository.ChildAssociationRef;
-import org.alfresco.service.cmr.repository.ContentService;
-import org.alfresco.service.cmr.repository.ContentWriter;
-import org.alfresco.service.cmr.repository.CopyService;
-import org.alfresco.service.cmr.repository.NodeRef;
-import org.alfresco.service.cmr.repository.NodeService;
-import org.alfresco.service.cmr.repository.ScriptLocation;
-import org.alfresco.service.cmr.repository.ScriptService;
-import org.alfresco.service.cmr.repository.StoreRef;
-import org.alfresco.service.cmr.security.AccessPermission;
-import org.alfresco.service.cmr.security.AccessStatus;
-import org.alfresco.service.cmr.security.AuthorityService;
-import org.alfresco.service.cmr.security.AuthorityType;
-import org.alfresco.service.cmr.security.MutableAuthenticationService;
-import org.alfresco.service.cmr.security.PermissionService;
+import org.alfresco.service.cmr.repository.*;
+import org.alfresco.service.cmr.search.SearchParameters;
+import org.alfresco.service.cmr.search.SearchService;
+import org.alfresco.service.cmr.security.*;
import org.alfresco.service.cmr.site.SiteInfo;
import org.alfresco.service.cmr.site.SiteMemberInfo;
import org.alfresco.service.cmr.site.SiteService;
@@ -3129,4 +3114,34 @@ public class SiteServiceImplTest extends BaseAlfrescoSpringTest
siteService.deleteSite(shortName);
}
+
+ @Test
+ public void testFindSitesQueryWithReservedCharacter()
+ {
+ // given
+ SiteServiceImpl cut = new SiteServiceImpl();
+
+ ArgumentCaptor searchParametersCaptor = ArgumentCaptor.forClass(SearchParameters.class);
+
+ SimpleCache cache = new MemoryCache<>();
+ cache.put("key.sitehome.noderef", new NodeRef("mock", "mock", "mock"));
+ cut.setSingletonCache(cache);
+
+ SearchService searchService = Mockito.mock(SearchService.class);
+ cut.setSearchService(searchService);
+ when(searchService.query(any(SearchParameters.class))).thenReturn(new EmptyResultSet());
+
+ // when
+ cut.findSites("-chu", 5);
+
+ // then
+ verify(searchService).query(searchParametersCaptor.capture());
+ SearchParameters actualSearchParameters = searchParametersCaptor.getValue();
+ assertThat(actualSearchParameters.getQuery())
+ .isEqualTo("+TYPE:\"{http://www.alfresco.org/model/site/1.0}site\""
+ + " AND ( cm:name:\"\\-chu*\""
+ + " OR cm:title: (\"\\-chu*\" )"
+ + " OR cm:description:\"\\-chu\")");
+
+ }
}
diff --git a/repository/src/test/java/org/alfresco/transform/registry/LocalTransformServiceRegistryConfigTest.java b/repository/src/test/java/org/alfresco/transform/registry/LocalTransformServiceRegistryConfigTest.java
index 0551b9cf57..7b8b7d9cc8 100644
--- a/repository/src/test/java/org/alfresco/transform/registry/LocalTransformServiceRegistryConfigTest.java
+++ b/repository/src/test/java/org/alfresco/transform/registry/LocalTransformServiceRegistryConfigTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Repository
* %%
- * Copyright (C) 2005 - 2023 Alfresco Software Limited
+ * Copyright (C) 2005 - 2025 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of