[ 
https://issues.apache.org/jira/browse/TIKA-1070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dietmar Glachs updated TIKA-1070:
---------------------------------

    Description: 
The error occurs when parsing big "XLS" files and is caused by the ElementInfo 
stored in "currentElement".

Each time a new element is started (method startElement) the current elment is 
newly overwritten with 

currentElement = new ElementInfo(currentElement, namespaces);

where the existing element is used as the parent element. Since the 
currentElement is not reset to the parent element after finishing the element 
(method: endElement) the method getPrefix recursively traverses the parents and 
finally causes the StackOverFlowError

For my understanding: something like:

currentElement = currentElement.parent;

in the endElement method solves the issue!

Best


  was:
The error occurs when parsing big "XLS" files and is caused by the ElementInfo 
stored in "currentElement".

Each time a new element is started (method startElement) the current elment is 
newly overwritten with 

currentElement = new ElementInfo(currentElement, namespaces);

where the existing element is used as the parent element. The currentElement is 
not reset to the parent element after finishing the element (method: 
endElement) 

For my understanding: something like:

currentElement = currentElement.parent;

would solve the issue!

Best


    
> StackOverflow error in 
> org.apache.tika.sax.ToXMLContentHandler$ElementInfo.getPrefix(ToXMLContentHandler.java:58)
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: TIKA-1070
>                 URL: https://issues.apache.org/jira/browse/TIKA-1070
>             Project: Tika
>          Issue Type: Bug
>          Components: parser
>    Affects Versions: 1.2, 1.3
>         Environment: Java
>            Reporter: Dietmar Glachs
>
> The error occurs when parsing big "XLS" files and is caused by the 
> ElementInfo stored in "currentElement".
> Each time a new element is started (method startElement) the current elment 
> is newly overwritten with 
> currentElement = new ElementInfo(currentElement, namespaces);
> where the existing element is used as the parent element. Since the 
> currentElement is not reset to the parent element after finishing the element 
> (method: endElement) the method getPrefix recursively traverses the parents 
> and finally causes the StackOverFlowError
> For my understanding: something like:
> currentElement = currentElement.parent;
> in the endElement method solves the issue!
> Best

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to