Community
Participate
Working Groups
Created attachment 223462 [details] XML with a large characters block Implementation of the characters() method in org.eclipse.datatools.enablement.oda.xml.util.SaxParser is very inefficient when an XML file contains a large characters block (see attached XML file). Current implementation causes a lot of copy System.arrayCopy() operations. Using StringBuilder as a cached value would improve performance significantly. To reproduce the problem: - download attachment "largeCharactersBlock.zip" and unpack it - create a new report - add an XML data source backed by the attached XML file - add an XML data set with two columns: "title" and "author" - save the report file - edit the dataset, go to preview tab, wait for result :-) To fix the problem: - apply the attached patch
Created attachment 223463 [details] Using StringBuilder instead of String
Seems reasonable, as the compiler may use the StringBuilder, if you concat the two String values (line 351), but for every call, the String is converted and reget.
Fix the issue by using the StringBuider, which will get better performance.