diff --git a/source/java/org/alfresco/repo/importer/ExportSourceImporter.java b/source/java/org/alfresco/repo/importer/ExportSourceImporter.java index 751c6df4d4..95aef73326 100644 --- a/source/java/org/alfresco/repo/importer/ExportSourceImporter.java +++ b/source/java/org/alfresco/repo/importer/ExportSourceImporter.java @@ -197,6 +197,11 @@ public class ExportSourceImporter implements ImporterJobSPI return null; } + public boolean allowReferenceWithinTransaction() + { + return false; + } + }; } diff --git a/source/java/org/alfresco/repo/importer/ImporterBootstrap.java b/source/java/org/alfresco/repo/importer/ImporterBootstrap.java index 62e8b2ad94..9f1287f1bc 100644 --- a/source/java/org/alfresco/repo/importer/ImporterBootstrap.java +++ b/source/java/org/alfresco/repo/importer/ImporterBootstrap.java @@ -439,6 +439,15 @@ public class ImporterBootstrap // always use create new strategy for bootstrap import return UUID_BINDING.CREATE_NEW; } + + /* + * (non-Javadoc) + * @see org.alfresco.service.cmr.view.ImporterBinding#searchWithinTransaction() + */ + public boolean allowReferenceWithinTransaction() + { + return true; + } } /** diff --git a/source/java/org/alfresco/repo/importer/ImporterComponent.java b/source/java/org/alfresco/repo/importer/ImporterComponent.java index df677ce493..4bbd412542 100644 --- a/source/java/org/alfresco/repo/importer/ImporterComponent.java +++ b/source/java/org/alfresco/repo/importer/ImporterComponent.java @@ -632,7 +632,7 @@ public class ImporterComponent searchParameters.addStore(importedRef.context.getNodeRef().getStoreRef()); searchParameters.setLanguage(SearchService.LANGUAGE_LUCENE); searchParameters.setQuery("PATH:\"" + importedRef.value + "\""); - searchParameters.excludeDataInTheCurrentTransaction(false); + searchParameters.excludeDataInTheCurrentTransaction((binding == null) ? true : !binding.allowReferenceWithinTransaction()); ResultSet resultSet = searchService.query(searchParameters); try { diff --git a/source/java/org/alfresco/service/cmr/view/ImporterBinding.java b/source/java/org/alfresco/service/cmr/view/ImporterBinding.java index 8146a9d4d7..603bf6ce3f 100644 --- a/source/java/org/alfresco/service/cmr/view/ImporterBinding.java +++ b/source/java/org/alfresco/service/cmr/view/ImporterBinding.java @@ -41,7 +41,15 @@ public interface ImporterBinding public UUID_BINDING getUUIDBinding(); /** - * Gets a value for the specified name - to support simple name / value binding + * Gets whether the search for imported node references should search within the import + * transaction or not. + * + * @return true => search within import transaction; false => only search existing committed items + */ + public boolean allowReferenceWithinTransaction(); + + /** + * Gets a value for the specified name - to support simple name / value substitution * * @param key the value name * @return the value