oXygen crashes opening file with many newlines

Having trouble installing Oxygen? Got a bug to report? Post it all here.
tatra603
Posts: 76
Joined: Fri Sep 17, 2004 10:53 am
Location: Prague, the Czech Republic, Europe

oXygen crashes opening file with many newlines

Post by tatra603 »

Hello!

I have a problem using <oXygen/> XML Editor 10.1, build 2009022712 on java.runtime.version = 1.6.0_10-b33 and java.version = 1.6.0_10. When I want to open file, which is as foollows:

Code: Select all


<?xml version="1.0">
<root>
3.000.000 times nothing but newline
</root>
oXygen crashes on too low memory. Well, this file is simplified output of XSL-T and I want to oXygen beautify whis file with rare elemnts but many newlines. Although I can and should change my XSL-T to remove newlines, I am surprised a bit, that oXygen crashes on such conditions. File has size 11.790 kB and -Xmx is set to 512m. Following Exception is thrown:

Code: Select all


Please restart after allocating more memory to oxygen.
For this modify the parameter -Xmx in the startup script, for example -Xmx700m.
In case you were running a diff tool when this problem occurred you can try to use another algorithm next time.
For more details see the 'Performance problems' and 'Setting a parameter in the startup script' sections of the User Manual.


If you just want to inspect the file, please use the Large File Viewer available from the Tools menu.


[ AWT-EventQueue-0 ] - java.lang.IndexOutOfBoundsException: Index: 3000004, Size: 1
java.lang.IndexOutOfBoundsException: Index: 3000004, Size: 1
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at ro.sync.H.M.A(Unknown Source)
at ro.sync.H.M.<init>(Unknown Source)
at ro.sync.H.L.C(Unknown Source)
at ro.sync.N.H.G(Unknown Source)
at ro.sync.exml.editor.a.G.A.l.ȁ(Unknown Source)
at ro.sync.exml.editor.T.B.Ẃ(Unknown Source)
at ro.sync.exml.editor.T.B$_A$1.run(Unknown Source)
at ro.sync.ui.g$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at ro.sync.ui.application.ApplicationDialog.ɢ(Unknown Source)
at ro.sync.ui.application.ApplicationDialog.setVisible(Unknown Source)
at ro.sync.ui.application.O.Ā(Unknown Source)
at ro.sync.ui.application.O.K(Unknown Source)
at ro.sync.exml.P.B.A(Unknown Source)
at ro.sync.exml.P.B.doAppend(Unknown Source)
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65)
at org.apache.log4j.Category.callAppenders(Category.java:203)
at org.apache.log4j.Category.forcedLog(Category.java:388)
at org.apache.log4j.Category.fatal(Category.java:379)
at ro.sync.N.I$5.run(Unknown Source)
at ro.sync.ui.g$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)



[ AWT-EventQueue-0 ] - java.lang.IndexOutOfBoundsException: Index: 3000004, Size: 1
java.lang.IndexOutOfBoundsException: Index: 3000004, Size: 1
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at ro.sync.H.M.A(Unknown Source)
at ro.sync.H.M.<init>(Unknown Source)
at ro.sync.H.L.C(Unknown Source)
at ro.sync.N.H.G(Unknown Source)
at ro.sync.exml.editor.a.G.A.l.ȁ(Unknown Source)
at ro.sync.exml.editor.T.B.Ẃ(Unknown Source)
at ro.sync.exml.editor.T.B$_A$1.run(Unknown Source)
at ro.sync.ui.g$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at ro.sync.ui.application.ApplicationDialog.ɢ(Unknown Source)
at ro.sync.ui.application.ApplicationDialog.setVisible(Unknown Source)
at ro.sync.ui.application.O.Ā(Unknown Source)
at ro.sync.ui.application.O.K(Unknown Source)
at ro.sync.exml.P.B.A(Unknown Source)
at ro.sync.exml.P.B.doAppend(Unknown Source)
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65)
at org.apache.log4j.Category.callAppenders(Category.java:203)
at org.apache.log4j.Category.forcedLog(Category.java:388)
at org.apache.log4j.Category.fatal(Category.java:379)
at ro.sync.N.I$5.run(Unknown Source)
at ro.sync.ui.g$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Thank You. Stepan
sorin_ristache
Posts: 4141
Joined: Fri Mar 28, 2003 2:12 pm

Re: oXygen crashes opening file with many newlines

Post by sorin_ristache »

Hello,

The memory necessary for rendering a document in the editor panel does not increase in a linear way with the document size. When a document has so many lines (3 million lines) it needs a very large amount of memory for the document model even if the lines are empty. If you increase the memory parameter to 800 MB for example (-Xmx800m) the XSLT transformation is completed, the result document with the 3 million number lines is opened without problems and a Format and Indent action will beautify the document successfully. I just tested that.


Regards,
Sorin
Post Reply