ECS: O ECS-Sync não pode migrar objetos relatando SAXParseException durante a migração de bucket

Summary: O ECS-Sync não pode migrar todos os objetos em um bucket e relatar SAXParseException durante a migração do bucket.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

O ECS-Sync não pode migrar todos os objetos em um bucket e relatar SAXParseException durante a migração do bucket. 

Se você vir o seguinte erro ao sincronizar um bucket do S3, há chaves de objeto no bucket com caracteres inválidos: 

org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 135069; An invalid XML character (Unicode: 0x3) was found in the element content of the document.
2025-07-16 02:56:43 ERROR [pool-1512497-thread-1] EcsSync: unexpected exception
javax.ws.rs.WebApplicationException: javax.xml.bind.UnmarshalException
 - with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 324854; An invalid XML character (Unicode: 0x1) was found in the element content of the document.]
	at com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.readFrom(AbstractRootElementProvider.java:113) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:634) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:586) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.object.s3.jersey.S3JerseyClient.executeRequest(S3JerseyClient.java:844) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.object.s3.jersey.S3JerseyClient.listObjects(S3JerseyClient.java:512) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.object.s3.jersey.S3JerseyClient.listMoreObjects(S3JerseyClient.java:520) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.ecs.sync.storage.s3.EcsS3Storage$PrefixIterator.lambda$getNextBatch$1(EcsS3Storage.java:1167) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.ecs.sync.util.TimingUtil.time(TimingUtil.java:56) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.ecs.sync.AbstractPlugin.time(AbstractPlugin.java:79) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.ecs.sync.storage.s3.EcsS3Storage.access$500(EcsS3Storage.java:65) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.ecs.sync.storage.s3.EcsS3Storage$PrefixIterator.getNextBatch(EcsS3Storage.java:1167) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.ecs.sync.storage.s3.EcsS3Storage$PrefixIterator.getNextObject(EcsS3Storage.java:1144) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.ecs.sync.storage.s3.EcsS3Storage$PrefixIterator.getNextObject(EcsS3Storage.java:1132) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.ecs.sync.util.ReadOnlyIterator.hasNext(ReadOnlyIterator.java:32) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.ecs.sync.EcsSync.run(EcsSync.java:291) [ecs-sync-3.5.4.jar:3.5.4]
	at com.emc.ecs.sync.service.SyncJobService$SyncTask.run(SyncJobService.java:299) [ecs-sync-3.5.4.jar:3.5.4]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_392]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_392]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_392]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_392]
	at java.lang.Thread.run(Thread.java:750) [?:1.8.0_392]
Caused by: javax.xml.bind.UnmarshalException
	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:335) ~[?:1.8.0_392]
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:578) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:264) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:229) ~[ecs-sync-3.5.4.jar:3.5.4]
	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:140) ~[?:1.8.0_392]
	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:123) ~[?:1.8.0_392]
	at com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider.readFrom(XMLRootElementProvider.java:115) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.readFrom(AbstractRootElementProvider.java:111) ~[ecs-sync-3.5.4.jar:3.5.4]
	... 20 more
Caused by: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x1) was found in the element content of the document.
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:399) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:326) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1466) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2922) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:601) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:504) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) ~[?:1.8.0_392]
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:642) ~[?:1.8.0_392]
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:258) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:229) ~[ecs-sync-3.5.4.jar:3.5.4]
	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:140) ~[?:1.8.0_392]
	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:123) ~[?:1.8.0_392]
	at com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider.readFrom(XMLRootElementProvider.java:115) ~[ecs-sync-3.5.4.jar:3.5.4]
	at com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.readFrom(AbstractRootElementProvider.java:111) ~[ecs-sync-3.5.4.jar:3.5.4]
	... 20 more

Cause

Isso significa que, ao listar o bucket de origem, um caractere inválido foi encontrado e o processamento não pôde continuar. 

Resolution

Para resolver isso, você deve codificar as chaves por URL ao listar o bucket. Esse recurso é ativado pela seguinte opção avançada no plug-in ECS S3 (na configuração de origem):

Para resolver isso, você deve codificar as chaves por URL ao listar o bucket. Esse recurso é ativado pela seguinte opção avançada no plug-in ECS S3 (na configuração de origem):

XML (colocar dentro da origem <ecsS3Config> Bloco):

    <urlEncodeKeys>true</urlEncodeKeys>

Affected Products

ECS
Article Properties
Article Number: 000350999
Article Type: Solution
Last Modified: 13 Aug 2025
Version:  1
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.