
To save memory, Oxygen disables the bidirectional functionality whenever a document reaches a certain size. Is it possible to manually turn it on, or to increase the upper limit? That would make me very happy! Thanks, François Charette

Hello, No, the BIDI functionality cannot be turned on manually but we will consider allowing the user to do that if the document size exceeds a maximum limit. The current maximum limit is about 300,000 characters and above this limit editing of BIDI documents can be very slow. How large are your BIDI documents? Regards, Sorin Firmicus wrote:
To save memory, Oxygen disables the bidirectional functionality whenever a document reaches a certain size.
Is it possible to manually turn it on, or to increase the upper limit?
That would make me very happy!
Thanks, François Charette

Sorin Ristache a écrit :
Hello,
No, the BIDI functionality cannot be turned on manually but we will consider allowing the user to do that if the document size exceeds a maximum limit. That would be very convenient indeed.
The current maximum limit is about 300,000 characters and above this limit editing of BIDI documents can be very slow. How large are your BIDI documents?
I am preparing a catalogue of Arabic manuscripts for a large library. I do the initial editing in small batches but later everything is merged together in one file, whose size is currently approaching 1MB (i.e. 850 000 UTF-8 characters). About 20% of its content is in Arabic. I have modified the oxygen.sh script to start Oxygen with -Xmx512m (i.e. twice as much memory as the default), and on my Linux machine everything is running very smoothly up to now. If you want I can do some testing with large bidi documents once you have "unlocked" the BIDI limit. Thanks, François

Hello, Replace your file [Oxygen9.3-install-folder]/lib/oxygen.jar with the following file: http://www.oxygenxml.com/update/9.3/no-BIDI-limit/oxygen.jar Restart Oxygen 9.3, make sure the new build number displayed in the About dialog is 2008091016 and try to edit the large Arabic file. Do you experience slow performance, do you get OutOfMemory errors? Regards, Sorin Firmicus wrote:
I am preparing a catalogue of Arabic manuscripts for a large library. I do the initial editing in small batches but later everything is merged together in one file, whose size is currently approaching 1MB (i.e. 850 000 UTF-8 characters). About 20% of its content is in Arabic.
I have modified the oxygen.sh script to start Oxygen with -Xmx512m (i.e. twice as much memory as the default), and on my Linux machine everything is running very smoothly up to now. If you want I can do some testing with large bidi documents once you have "unlocked" the BIDI limit.
Thanks, François

Sorin Ristache a écrit :
Hello,
Replace your file [Oxygen9.3-install-folder]/lib/oxygen.jar with the following file:
http://www.oxygenxml.com/update/9.3/no-BIDI-limit/oxygen.jar
Restart Oxygen 9.3, make sure the new build number displayed in the About dialog is 2008091016 and try to edit the large Arabic file. Do you experience slow performance, do you get OutOfMemory errors?
Regards, Sorin
Many thanks for that very quick reaction! There is no problem with the memory, but the CPU usage was very high when the file was being loaded, and moderately high during editing. Also, it took very long to load the file (ca. 2:30 minutes). The first time there was no error message, but when I closed the file and opened it again, I got the following error message at the end (even though everything seemed to be displayed correctly and editing worked as expected thereafter): [ class ro.sync.exml.I$_A ] - java.lang.NullPointerException java.lang.NullPointerException at javax.swing.text.FlowView$FlowStrategy.layoutRow(FlowView.java:538) at javax.swing.text.TextLayoutStrategy.layoutRow(TextLayoutStrategy.java:109) at javax.swing.text.FlowView$FlowStrategy.layout(FlowView.java:452) at javax.swing.text.TextLayoutStrategy.layout(TextLayoutStrategy.java:92) at javax.swing.text.FlowView.layout(FlowView.java:184) at javax.swing.text.BoxView.setSize(BoxView.java:380) at ro.sync.I.Q$_A.setSize(Unknown Source) at javax.swing.text.BoxView.updateChildSizes(BoxView.java:349) at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:331) at javax.swing.text.BoxView.layout(BoxView.java:691) at javax.swing.text.BoxView.setSize(BoxView.java:380) at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1701) at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1033) at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1009) at javax.swing.text.JTextComponent.modelToView(JTextComponent.java:1400) at ro.sync.ui.E.A.B.D(Unknown Source) at ro.sync.ui.E.J.B(Unknown Source) at ro.sync.ui.E.R.D(Unknown Source) at ro.sync.ui.E.R.B(Unknown Source) at ro.sync.ui.E.A.A.L(Unknown Source) at ro.sync.ui.E.A.A.M(Unknown Source) at ro.sync.A.L.G.M(Unknown Source) at ro.sync.A.L.M.M(Unknown Source) at ro.sync.exml.I.t.M(Unknown Source) at ro.sync.exml.I.t.K(Unknown Source) at ro.sync.exml.I.B.D.A(Unknown Source) at ro.sync.exml.I.VA.K(Unknown Source) at ro.sync.exml.I.VA.K(Unknown Source) at ro.sync.exml.I.VA.open(Unknown Source) at ro.sync.exml.I$_A.k(Unknown Source) at ro.sync.exml.I$_A.K(Unknown Source) at ro.sync.exml.I$_A$1.actionPerformed(Unknown Source) at ro.sync.ui.application.A.P$_A$1.ɟ(Unknown Source) at ro.sync.ui.application.A.run(Unknown Source) Regards, FC

Thank you for the details. If editing worked as expected with the only problem of moderately high CPU usage I think we can offer the option of removing the limit for the maximum file size in case of BIDI documents. We will look at the implications of the reported stack trace. Regards, Sorin Firmicus wrote:
There is no problem with the memory, but the CPU usage was very high when the file was being loaded, and moderately high during editing. Also, it took very long to load the file (ca. 2:30 minutes). The first time there was no error message, but when I closed the file and opened it again, I got the following error message at the end (even though everything seemed to be displayed correctly and editing worked as expected thereafter):
[ class ro.sync.exml.I$_A ] - java.lang.NullPointerException java.lang.NullPointerException at javax.swing.text.FlowView$FlowStrategy.layoutRow(FlowView.java:538) at javax.swing.text.TextLayoutStrategy.layoutRow(TextLayoutStrategy.java:109) at javax.swing.text.FlowView$FlowStrategy.layout(FlowView.java:452) at javax.swing.text.TextLayoutStrategy.layout(TextLayoutStrategy.java:92) at javax.swing.text.FlowView.layout(FlowView.java:184) at javax.swing.text.BoxView.setSize(BoxView.java:380) at ro.sync.I.Q$_A.setSize(Unknown Source) at javax.swing.text.BoxView.updateChildSizes(BoxView.java:349) at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:331) at javax.swing.text.BoxView.layout(BoxView.java:691) at javax.swing.text.BoxView.setSize(BoxView.java:380) at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1701) at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1033) at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1009) at javax.swing.text.JTextComponent.modelToView(JTextComponent.java:1400) at ro.sync.ui.E.A.B.D(Unknown Source) at ro.sync.ui.E.J.B(Unknown Source) at ro.sync.ui.E.R.D(Unknown Source) at ro.sync.ui.E.R.B(Unknown Source) at ro.sync.ui.E.A.A.L(Unknown Source) at ro.sync.ui.E.A.A.M(Unknown Source) at ro.sync.A.L.G.M(Unknown Source) at ro.sync.A.L.M.M(Unknown Source) at ro.sync.exml.I.t.M(Unknown Source) at ro.sync.exml.I.t.K(Unknown Source) at ro.sync.exml.I.B.D.A(Unknown Source) at ro.sync.exml.I.VA.K(Unknown Source) at ro.sync.exml.I.VA.K(Unknown Source) at ro.sync.exml.I.VA.open(Unknown Source) at ro.sync.exml.I$_A.k(Unknown Source) at ro.sync.exml.I$_A.K(Unknown Source) at ro.sync.exml.I$_A$1.actionPerformed(Unknown Source) at ro.sync.ui.application.A.P$_A$1.ɟ(Unknown Source) at ro.sync.ui.application.A.run(Unknown Source)
Regards, FC
participants (2)
-
Firmicus
-
Sorin Ristache