Page 1 of 1

docx4j: 3.3.1: NumberFormatException

PostPosted: Wed Nov 23, 2016 9:01 am
by tcomkumar
Getting below exception when jaxb unmarshalling the integer. JDK version is 1.7. Appreciate any help on this.

Exception [EclipseLink-3002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.ConversionException
Exception Description: The object [4294966792], of class [class java.lang.String], from mapping [org.eclipse.persistence.oxm.mappings.XMLDirectMapping[totalTime-->TotalTime/text()]
] with descriptor [XMLDescriptor(org.docx4j.docProps.extended.Properties --> [DatabaseTable(Properties)])], could not be converted to [class java.lang.Integer].
Internal Exception: java.lang.NumberFormatException: For input string: "4294966792"
at org.eclipse.persistence.exceptions.ConversionException.couldNotBeConverted(ConversionException.java:87)
at org.eclipse.persistence.internal.helper.ConversionManager.convertObjectToInteger(ConversionManager.java:542)
at org.eclipse.persistence.internal.oxm.XMLConversionManager.convertObjectToInteger(XMLConversionManager.java:602)
at org.eclipse.persistence.internal.helper.ConversionManager.convertObject(ConversionManager.java:116)
at org.eclipse.persistence.internal.oxm.XMLConversionManager.convertObject(XMLConversionManager.java:191)
at org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform.convertObject(DatasourcePlatform.java:179)
at org.eclipse.persistence.oxm.mappings.XMLDirectMapping.getAttributeValue(XMLDirectMapping.java:301)
at org.eclipse.persistence.oxm.mappings.XMLDirectMapping.getAttributeValue(XMLDirectMapping.java:1)
at org.eclipse.persistence.internal.oxm.XMLDirectMappingNodeValue.endElement(XMLDirectMappingNodeValue.java:194)
at org.eclipse.persistence.internal.oxm.record.UnmarshalRecordImpl.endElement(UnmarshalRecordImpl.java:1022)
at org.eclipse.persistence.internal.oxm.record.XMLStreamReaderReader.parseEvent(XMLStreamReaderReader.java:154)
at org.eclipse.persistence.internal.oxm.record.XMLStreamReaderReader.parse(XMLStreamReaderReader.java:99)
at org.eclipse.persistence.internal.oxm.record.XMLStreamReaderReader.parse(XMLStreamReaderReader.java:86)
at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:895)
at org.eclipse.persistence.oxm.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:659)
at org.eclipse.persistence.jaxb.JAXBUnmarshaller.unmarshal(JAXBUnmarshaller.java:585)
at org.docx4j.openpackaging.parts.DocPropsExtendedPart.unmarshal(DocPropsExtendedPart.java:134)
at org.docx4j.openpackaging.parts.DocPropsExtendedPart.unmarshal(DocPropsExtendedPart.java:45)
at org.docx4j.openpackaging.parts.JaxbXmlPart.getContents(JaxbXmlPart.java:159)
at org.docx4j.openpackaging.parts.JaxbXmlPart.marshal(JaxbXmlPart.java:316)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.createRawXmlPart(FlatOpcXmlCreator.java:217)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.saveRawXmlPart(FlatOpcXmlCreator.java:182)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.savePart(FlatOpcXmlCreator.java:369)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.addPartsFromRelationships(FlatOpcXmlCreator.java:332)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.get(FlatOpcXmlCreator.java:126)
at org.docx4j.openpackaging.packages.OpcPackage.save(OpcPackage.java:636)
at org.docx4j.openpackaging.packages.OpcPackage.save(OpcPackage.java:616)
at com.csg.cs.document.repository.common.services.tranformation.impl.TransformationServiceImpl.transformWordToWML(TransformationServiceImpl.java:185)
at com.csg.cs.document.repository.ingest.services.ingestion.impl.IngestDocumentServiceImpl.ingestUploadedDocument(IngestDocumentServiceImpl.java:229)
at com.csg.cs.document.repository.ingest.util.DocumentProcessorCallable.processIngest(DocumentProcessorCallable.java:159)
at com.csg.cs.document.repository.ingest.util.DocumentProcessorCallable.call(DocumentProcessorCallable.java:99)
at com.csg.cs.document.repository.ingest.util.DocumentProcessorCallable.call(DocumentProcessorCallable.java:25)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NumberFormatException: For input string: "4294966792"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:495)
at java.lang.Integer.valueOf(Integer.java:582)
at org.eclipse.persistence.internal.helper.ConversionManager.convertObjectToInteger(ConversionManager.java:527)
... 34 more
java.lang.IllegalArgumentException
at org.eclipse.persistence.jaxb.JAXBMarshaller.marshal(JAXBMarshaller.java:417)
at org.docx4j.openpackaging.parts.JaxbXmlPart.marshal(JaxbXmlPart.java:328)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.createRawXmlPart(FlatOpcXmlCreator.java:217)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.saveRawXmlPart(FlatOpcXmlCreator.java:182)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.savePart(FlatOpcXmlCreator.java:369)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.addPartsFromRelationships(FlatOpcXmlCreator.java:332)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.get(FlatOpcXmlCreator.java:126)
at org.docx4j.openpackaging.packages.OpcPackage.save(OpcPackage.java:636)
at org.docx4j.openpackaging.packages.OpcPackage.save(OpcPackage.java:616)
at com.csg.cs.document.repository.common.services.tranformation.impl.TransformationServiceImpl.transformWordToWML(TransformationServiceImpl.java:185)
at com.csg.cs.document.repository.ingest.services.ingestion.impl.IngestDocumentServiceImpl.ingestUploadedDocument(IngestDocumentServiceImpl.java:229)
at com.csg.cs.document.repository.ingest.util.DocumentProcessorCallable.processIngest(DocumentProcessorCallable.java:159)
at com.csg.cs.document.repository.ingest.util.DocumentProcessorCallable.call(DocumentProcessorCallable.java:99)
at com.csg.cs.document.repository.ingest.util.DocumentProcessorCallable.call(DocumentProcessorCallable.java:25)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
org.docx4j.openpackaging.exceptions.Docx4JException: Failed to add parts from relationships
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.addPartsFromRelationships(FlatOpcXmlCreator.java:337)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.get(FlatOpcXmlCreator.java:126)
at org.docx4j.openpackaging.packages.OpcPackage.save(OpcPackage.java:636)
at org.docx4j.openpackaging.packages.OpcPackage.save(OpcPackage.java:616)
at com.csg.cs.document.repository.common.services.tranformation.impl.TransformationServiceImpl.transformWordToWML(TransformationServiceImpl.java:185)
at com.csg.cs.document.repository.ingest.services.ingestion.impl.IngestDocumentServiceImpl.ingestUploadedDocument(IngestDocumentServiceImpl.java:229)
at com.csg.cs.document.repository.ingest.util.DocumentProcessorCallable.processIngest(DocumentProcessorCallable.java:159)
at com.csg.cs.document.repository.ingest.util.DocumentProcessorCallable.call(DocumentProcessorCallable.java:99)
at com.csg.cs.document.repository.ingest.util.DocumentProcessorCallable.call(DocumentProcessorCallable.java:25)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.docx4j.openpackaging.exceptions.Docx4JException: Problem saving part /docProps/app.xml
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.createRawXmlPart(FlatOpcXmlCreator.java:242)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.saveRawXmlPart(FlatOpcXmlCreator.java:182)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.savePart(FlatOpcXmlCreator.java:369)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.addPartsFromRelationships(FlatOpcXmlCreator.java:332)
... 12 more
Caused by: java.lang.IllegalArgumentException
at org.eclipse.persistence.jaxb.JAXBMarshaller.marshal(JAXBMarshaller.java:417)
at org.docx4j.openpackaging.parts.JaxbXmlPart.marshal(JaxbXmlPart.java:328)
at org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator.createRawXmlPart(FlatOpcXmlCreator.java:217)
... 15 more

Re: docx4j: 3.3.1: NumberFormatException

PostPosted: Wed Nov 23, 2016 11:56 am
by jason
"4294966792" is too big to be an Integer.

The document which is causing this ... could you please unzip it and extract/copy here the contents of /docProps/app.xml

or at least what:

Code: Select all
at com.csg.cs.document.repository.common.services.tranformation.impl.TransformationServiceImpl.transformWordToWML(TransformationServiceImpl.java:185)
at com.csg.cs.document.repository.ingest.services.ingestion.impl.IngestDocumentServiceImpl.ingestUploadedDocument(IngestDocumentServiceImpl.java:229)


is emitting for that.

If not the whole of app.xml, then at least the element this value is found in.

Also of interest: what application produced the source document?

Re: docx4j: 3.3.1: NumberFormatException

PostPosted: Wed Nov 23, 2016 9:30 pm
by tcomkumar
Thank for your reply. Below is the app.xml. Also given below the code. The code runs in a weblogic container.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Template>template.dotm</Template><TotalTime>4294966792</TotalTime><Pages>7</Pages><Words>5400</Words><Characters>30664</Characters><Application>Microsoft Office Word</Application><DocSecurity>0</DocSecurity><Lines>528</Lines><Paragraphs>346</Paragraphs><ScaleCrop>false</ScaleCrop><HeadingPairs><vt:vector size="2" baseType="variant"><vt:variant><vt:lpstr>Title</vt:lpstr></vt:variant><vt:variant><vt:i4>1</vt:i4></vt:variant></vt:vector></HeadingPairs><TitlesOfParts><vt:vector size="1" baseType="lpstr"><vt:lpstr></vt:lpstr></vt:vector></TitlesOfParts><Company></Company><LinksUpToDate>false</LinksUpToDate><CharactersWithSpaces>35718</CharactersWithSpaces><SharedDoc>false</SharedDoc><HyperlinksChanged>false</HyperlinksChanged><AppVersion>14.0000</AppVersion></Properties>

====
public String transformWordToWML(final File file)
throws Exception {

if (file == null) {
LOGGER.log(Level.SEVERE, "File you are trying to convert is either NULL or EMPTY.");
return null;
}

// Document document = null;
InputStream fis = null;
InputStream is = null;
OutputStream os = null;
String wml = null;

long t = System.currentTimeMillis();

try {

byte[] fileInBytes = new byte[(int) file.length()];

LOGGER.info("FILE SIZE (bytes) :: " + file.length());
fis = new FileInputStream(file);
fis.read(fileInBytes);

is = new ByteArrayInputStream(fileInBytes);
os = new ByteArrayOutputStream();

WordprocessingMLPackage p1 = WordprocessingMLPackage.load(is);
p1.getPackage().save(os, Docx4J.FLAG_SAVE_FLAT_XML);

wml = os.toString();

} catch (Exception e) {
LOGGER.log(Level.SEVERE, "Error occured while transforming MS-Word document to WML", e);
throw new Exception("Error occured while transforming MS-Word document to WML", e);
} finally {
if (os != null) {
try {
os.close();
} catch (Exception e) {
LOGGER.log(Level.SEVERE, "Error occured while closing OutputStream", e);
throw new Exception("Error occured while closing OutputStream", e);
}

}
if (is != null) {
try {
is.close();
} catch (Exception e) {
LOGGER.log(Level.SEVERE, "Error occured while closing InputStream", e);
throw new Exception("Error occured while closing InputStream", e);
}
}

if(fis != null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

LOGGER.info(":: Time to convert Docx to WML Using (DOX4J): "
+ (System.currentTimeMillis() - t));

return wml;
}


The document is produced by our internal people from the desktop.

Re: docx4j: 3.3.1: NumberFormatException

PostPosted: Wed Nov 23, 2016 10:31 pm
by jason
Hmmm, I wonder where:

Code: Select all
<TotalTime>4294966792</TotalTime>


came from.

When you say:

The document is produced by our internal people from the desktop.


Did they use Word, or something else?

Re: docx4j: 3.3.1: NumberFormatException

PostPosted: Thu Nov 24, 2016 7:18 am
by tcomkumar
The document is produced from Word. Interestingly the issue doesn't come for the same doc in a standalone program. Would it be because of the JAXB library org.eclipse.persistence.jaxb.JAXBUnmarshaller.unmarshal(JAXBUnmarshaller.java:585) being used in Weblogic environment instead of javax.xml.bind?