You saved my day! I missed this »table of content« approach for years:
My only reason for loading master documents is getting master document
support i.e. cross reference link validation across (x)included modules.
And I never realized the possibility of changing the master document's
view mode not needing any details on top document level anyway thus
wasting time on startup.

On contrary the thumbnail approach may have a minor deficiency: In order
to persistently open a master document with thumbnail images »use
thumbnails« must be defined as default. Thus each time opening an
xincluded module then requires choosing "View -> Display Images ->
normally" since the image view mode cannot be defined on a per module
basis (on contrary to table of contents view mode).

Martin Goik

On 08.09.2018 10:55, Hussein Shafie wrote:
> Your "master.xml" is a very large, modular, DocBook 5 document
> containing many high res images. (My guess is that it's the high res
> images which are causing the issue.)
>
> There is a simple trick A) to very considerably speed up opening this
> document B) to consume much less memory.
>
> Procedure:
>
> 1) Open "master.xml" (of course, after setting -Xmx4096m; there is
> another procedure which does not require first setting -Xmx4096m, but
> I'll not explain it here).
>
> 2) In the "View" menu, select "Table of contents".
>
> 3) In the "View" menu, select "Multiple views -> Use current view as
> default".
>
> 4) In the dialog box, select "Use as default for this document".
>
> This being done, you may safely revert to -Xmx2048m.
>
> See "Multiple Views" in
> http://www.xmlmind.com/xmleditor/_distrib/doc/help/viewMenu.html
>
>
>
> --> Other trick, in order A) to speed up a little opening a module
> containing many very high res images B) to consume much less memory.
>
> Procedure:
>
> 1) Select "View -> Display Images -> As Thumbnails".
>
> 2) Select "View -> Use as Default".
>
> See "Display Images" in
> http://www.xmlmind.com/xmleditor/_distrib/doc/help/viewMenu.html
>
>
>
> --------------------------------------------------------------------
> By using these 2 two tricks, you'll find XXE comfortable to use when
> working on your "master.xml" document.
>
> In fact, personally, I would not even consider using XXE to edit your
> "master.xml" document unless I use these 2 tricks.
> --------------------------------------------------------------------
>
>
>
>
> Martin Goik wrote:
>> Setting mem="-Xss4m -Xmx4096m" in the xxe binary »solves« the problem. A
>> value of -Xmx2048m is not enough! I've changed this value two times back
>> and forth observing consistent behaviour. Heap related exceptions no
>> longer show up when setting -Xmx4096m.
>>
>> There are still SVG related stack traces but the corresponding images
>> are being displayed properly. So I guess from Batik's point of view
>> these SVG exceptions are merely warnings.
>
>
>
>
> Martin Goik wrote:
>>
>> I try to load a larger Docbook 5 document into current Xmlmind 8.2
>> personal edition. This used to work with older Xmlmind versions for many
>> years albeit taking some time for loading.
>
> To our knowledge, the changes made to recent versions of XXE do not
> increase its memory consumption.
>
> However, we have found Java 10 to consume more memory than Java 8.
>
>
>
>
>> The document in question
>> resides in Doc/master.xml within the zip Archive at
>> https://cloud.mi.hdm-stuttgart.de/owncloud/index.php/s/S9z23f7Q8j6j5ZS.
>> I'm on current Ubuntu 18.04 64 bit Linux.
>>
>> With stock Xmlmind 8.2 starting without any .xxe8 and current JRE 10
>> I get:
>
> This also happens with Java 1.6.
>
>
>
>
>
>>
>>> Exception in thread "AWT-EventQueue-0" java.util.EmptyStackException
>>>     at java.base/java.util.Stack.peek(Stack.java:102)
>>>     at
>>> com.xmlmind.xmledit.view.DocumentView$ViewTreeAttacher.leaveElement(DocumentView.java:2702)
>>>
>>>     at com.xmlmind.xml.doc.Traversal.traverse(Traversal.java:322)
>>>     at com.xmlmind.xml.doc.Traversal.traverse(Traversal.java:314)
>>>     at com.xmlmind.xml.doc.Traversal.traverse(Traversal.java:314)
>>>     at com.xmlmind.xml.doc.Traversal.traverse(Traversal.java:314)
>>>     at com.xmlmind.xml.doc.Traversal.traverse(Traversal.java:314)
>>>     at com.xmlmind.xml.doc.Traversal.traverse(Traversal.java:314)
>>>     at com.xmlmind.xml.doc.Traversal.traverse(Traversal.java:314)
>>>     at com.xmlmind.xml.doc.Traversal.traverse(Traversal.java:314)
>>>     at com.xmlmind.xml.doc.Traversal.traverse(Traversal.java:314)
>>>     at com.xmlmind.xml.doc.Traversal.traverse(Traversal.java:314)
>>>     at
>>> com.xmlmind.xmledit.view.DocumentView$ViewTreeAttacher.run(DocumentView.java:2633)
>>>
>>>     at
>>> com.xmlmind.xmledit.view.DocumentView.setDocument(DocumentView.java:648)
>>>
>>>     at com.xmlmind.xmleditapp.kit.Editor.open(Editor.java:222)
>>>     at
>>> com.xmlmind.xmleditapp.xkit.MultiDocApp.addOpenedDocument(MultiDocApp.java:308)
>>>
>>>     at
>>> com.xmlmind.xmleditapp.kit.part.OpenAction.doExec(OpenAction.java:112)
>>>     at
>>> com.xmlmind.xmleditapp.kit.part.OpenAction.exec(OpenAction.java:73)
>>>     at
>>> com.xmlmind.xmleditapp.kit.LengthyAction$1.actionPerformed(LengthyAction.java:43)
>>>
>>>     at
>>> java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:317)
>>>     at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:249)
>>>     at
>>> java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
>>>
>>>     at
>>> java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
>>>     at java.desktop/java.awt.EventQueue.access$600(EventQueue.java:97)
>>>     at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
>>>     at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
>>>     at java.base/java.security.AccessController.doPrivileged(Native
>>> Method)
>>>     at
>>> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
>>>
>>>     at
>>> java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
>>>
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
>>>
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
>>>
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
>>>
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
>>>
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
>>>
>>
>> Nothing happens in the Xmlmind Window. Clicking the menu to load the
>> file again results in:
>>
>>> Exception in thread "TimerQueue" java.lang.OutOfMemoryError: Java heap
>>> space
>>> Sep 07, 2018 11:52:50 PM sun.awt.X11.XToolkit processException
>>> WARNING: Exception on Toolkit thread
>>> java.lang.OutOfMemoryError: Java heap space
>>>
>>> Sep 07, 2018 11:53:18 PM sun.awt.X11.XToolkit processException
>>> WARNING: Exception on Toolkit thread
>>> java.lang.OutOfMemoryError: Java heap space
>>
>> And after a while I get:
>>
>>> SVG transcoder error: null
>>> Enclosed Exception:
>>> file:/ma/goik/GoikLectures/Doc/Tdoc/Ref/Docbook/authorAndPublish.svg:
>>> The attribute "stroke-width" represents an invalid CSS value ("null").
>>> Original message:
>>> The "stroke-width" property does not support identifier values.
>>> org.w3c.dom.DOMException:
>>> file:/ma/goik/GoikLectures/Doc/Tdoc/Ref/Screen/docbook2other.svg:
>>> The attribute "style" represents an invalid CSS declaration
>>> ("font-weight:bold;font-size:10.20800018px;line-height:125%;font-family:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff").
>>>
>>> Original message:
>>> The "center" identifier is not a valid value for the "text-align"
>>> property.
>>>     at
>>> org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(CSSEngine.java:824)
>>>
>>>     at
>>> org.apache.batik.css.engine.CSSEngine.getComputedStyle(CSSEngine.java:867)
>>>
>>>     at
>>> org.apache.batik.bridge.CSSUtilities.getComputedStyle(CSSUtilities.java:81)
>>>
>>>     at
>>> org.apache.batik.bridge.CSSUtilities.convertDisplay(CSSUtilities.java:563)
>>>
>>>     at
>>> org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:206)
>>>
>>>     at
>>> org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
>>>     at
>>> org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219)
>>>
>>>     at
>>> org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
>>>     at
>>> org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219)
>>>
>>>     at
>>> org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
>>>     at
>>> org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219)
>>>
>>>     at
>>> org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
>>>     at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82)
>>>     at
>>> org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:208)
>>>
>>>     at
>>> org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92)
>>>
>>>     at
>>> org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
>>>
>>>     at
>>> org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
>>>
>>>     at
>>> com.xmlmind.xmleditext.batik_imagetoolkit.BatikImageToolkit$1.createImage(BatikImageToolkit.java:150)
>>>
>>>     at
>>> com.xmlmind.xmledit.imagetoolkit.ImageToolkits.createImage(ImageToolkits.java:243)
>>>
>>>     at
>>> com.xmlmind.xmledit.form.ImageContentBuilder.createImage(ImageContentBuilder.java:246)
>>>
>>>     at
>>> com.xmlmind.xmledit.form.ImageContentBuilder.build(ImageContentBuilder.java:157)
>>>
>>>     at
>>> com.xmlmind.xmledit.form.ImageViewportVP.createImageContent(ImageViewportVP.java:355)
>>>
>>>     at
>>> com.xmlmind.xmleditapp.dndview.ImageViewportVP.createImageContent(ImageViewportVP.java:615)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.AbstractImageViewport.makeImageContent(AbstractImageViewport.java:325)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.AbstractImageViewport.layoutContent(AbstractImageViewport.java:249)
>>>
>>>     at com.xmlmind.xmledit.styledgadget.Box.layout(Box.java:99)
>>>     at
>>> com.xmlmind.xmledit.styledgadget.Division.layoutContent(Division.java:128)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.ContainerBox.layout(ContainerBox.java:74)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.TextLineContainerBox.layout(TextLineContainerBox.java:62)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.Division.layoutContent(Division.java:128)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.ContainerBox.layout(ContainerBox.java:74)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.TextLineContainerBox.layout(TextLineContainerBox.java:62)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.CollapsibleDivision.layoutContent(CollapsibleDivision.java:138)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.ContainerBox.layout(ContainerBox.java:74)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.TextLineContainerBox.layout(TextLineContainerBox.java:62)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.CollapsibleDivision.layoutContent(CollapsibleDivision.java:138)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.ContainerBox.layout(ContainerBox.java:74)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.TextLineContainerBox.layout(TextLineContainerBox.java:62)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.CollapsibleDivision.layoutContent(CollapsibleDivision.java:138)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.ContainerBox.layout(ContainerBox.java:74)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.TextLineContainerBox.layout(TextLineContainerBox.java:62)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.CollapsibleDivision.layoutContent(CollapsibleDivision.java:138)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.ContainerBox.layout(ContainerBox.java:74)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.TextLineContainerBox.layout(TextLineContainerBox.java:62)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.CollapsibleDivision.layoutContent(CollapsibleDivision.java:138)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.ContainerBox.layout(ContainerBox.java:74)
>>>
>>>     at
>>> com.xmlmind.xmledit.styledgadget.TextLineContainerBox.layout(TextLineContainerBox.java:62)
>>>
>>>     at
>>> com.xmlmind.xmledit.gadget.RootGadget.layout(RootGadget.java:256)
>>>     at com.xmlmind.xmledit.gadget.Gadget.layout(Gadget.java:340)
>>>     at
>>> com.xmlmind.xmledit.view.JScrollPaneSupport.componentResized(JScrollPaneSupport.java:224)
>>>
>>>     at
>>> java.desktop/java.awt.Component.processComponentEvent(Component.java:6415)
>>>
>>>     at
>>> java.desktop/java.awt.Component.processEvent(Component.java:6369)
>>>     at
>>> java.desktop/java.awt.Container.processEvent(Container.java:2261)
>>>     at
>>> java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4966)
>>>     at
>>> java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2319)
>>>     at
>>> java.desktop/java.awt.Component.dispatchEvent(Component.java:4798)
>>>     at
>>> java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
>>>     at java.desktop/java.awt.EventQueue.access$600(EventQueue.java:97)
>>>     at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
>>>     at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
>>>     at java.base/java.security.AccessController.doPrivileged(Native
>>> Method)
>>>     at
>>> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
>>>
>>>     at
>>> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
>>>
>>>     at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
>>>     at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
>>>     at java.base/java.security.AccessController.doPrivileged(Native
>>> Method)
>>>     at
>>> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
>>>
>>>     at
>>> java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
>>>
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
>>>
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
>>>
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
>>>
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
>>>
>>>     at
>>> java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
>>>
>>
>> This repeats  ans is probably related to inkscape created SVG images and
>> Batik struggling with SVG standard violations. CPU load remains at 100%
>> for several minutes before manually killing the process.
>>
>> Trying older JRE and openjdk versions and tinkering with -Xmx2048M I
>> also see:
>>
>>
>>> Sep 07, 2018 11:12:22 PM sun.awt.X11.XToolkit processException
>>>  WARNING: Exception on Toolkit thread
>>>  java.lang.OutOfMemoryError: GC overhead limit exceeded
>>>
>>> Exception in thread "CheckForUpdatesAction.CheckThread"
>>> java.lang.OutOfMemoryError: GC overhead limit exceeded
>>> Exception in thread "AWT-XAWT" java.lang.OutOfMemoryError: GC overhead
>>> limit exceeded ...
>>
>> and
>>
>>> Exception: java.lang.OutOfMemoryError thrown from the
>>> UncaughtExceptionHandler in thread "Glass/Prism Shutdown Hook"
>>

-- 
https://map.what3words.com/scraper.furnish.furnish , 1-st floor
If you want total security, go to prison. There you're fed, clothed,
given medical care and so on. The only thing lacking... is freedom.
                                                Dwight D. Eisenhower


Attachment: signature.asc
Description: OpenPGP digital signature

--
XMLmind XML Editor Support List
xmleditor-support@xmlmind.com
http://www.xmlmind.com/mailman/listinfo/xmleditor-support

Reply via email to