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