[messages] [Technical Support & Bugs] HTML Help File - Bug suspected

Chatmourai cmassaloux at free.fr
Mon Sep 1 16:00:40 CEST 2014


Hi to the Vassal team,
Let me take this opportunity to thank you guys for this incredible great
piece of software !

I strongly suspect a bug in the Vassal Module Editor, regarding
management of HTML Help Files.

I am currently developping a new module, and when it came to the step of
the on-line help, I have stumbled on the following issue.
I have quickly developped a small test module to reproduced the issue,
because my actual module is not yet finalized and it is not necessary to
upload such a big file when a small one is enough to illustrate the
problem.

My config:
Compaq 8510w laptop, with an Intel Core2 duo CPU T8100 @ 2.1GHz and 4
GBytes RAM
Video card AMD/ATI] RV630/M76 [Mobility Radeon HD 2600]
OS Linux Kubuntu (Precise) 12.04, Kernel linux 3.2.0-61-generic-pae +
KDE 4.8.5
Java version 1.6.0_31 from Sun Microsystems Inc.
Vassal v 3.2.13 (latest at the time of writing)
In the prefs, I have chosen the French language but the issue happens
also in English.

The steps to reproduce the pb
1) Create a test directory name "DummyModule" somewhere on your local
computer, and extract the provided zip archive in it.
You should have the following directory hierarchy:
  - [DummyModule]
      - Dummy.vmod
      - [Help]
          - DummyHelpPage.html
          - Smiley.png
2) Check the size of the Dummy.vmod module file. It should be 2,0 Kb.
3) Start Vassal 3.2.13
4) Menu File/Edit a module, then select Dummy.vmod
5) In the Vassal Module Editor, under the "Help Menu" folder, add an
"HTML Help File" element. In the properties window, type "Online Help"
in the "Menu Entry" textfield.
6) Click on the "Content: Select" button and browse to the local
"DummyModule/Help" subdirectory. The path to this directory is now
displayed in the corresponding textfield
7) Type the filename "DummyHelpPage.html" in the "Starting Page:"
textfield 
8 ) Validate by clicking "OK"
9) Try to display the HTML help page in the Vassal module game window.
Select Menu "Help/Online Help". This opens a popup error window with the
following message:
  Unable to Read File
  VASSAL was unable to read the file
'file:/tmp/VASSAL/help/Online_Help/DummyHelpPage.html'.
10) go back to the Vassal Module Editor and check the properties of the
"Online Help" element. The previously selected path in the "Contents"
textfield has been removed and is now back to "null".

Now I try the following:
1) Check the size of the Dummy.vmod module file. It should still be 2,0
Kb.
2) Rename the "DummyModule/Help" subdirectory as "DummyModule/Online
Help" (same name as the "Menu Entry" field of the "HTML Help File"
element)
3) Open the properties of the "Online Help" element, and click on the
"Content: Select" button and browse to the local "DummyModule"
subdirectory (and NOT the "Online Help" subdir). 
4) Make sure the "starting Page" textfield still has the
"DummyHelpPage.html" filename, and Validate by clicking "OK"
5) Save the module file and check its size. On my side, it is now 9,3
Kb.
6) Try to display the Online Help HTML page.
7) Nothing happens, even not the above popup message window

The Log console of Vassal display the following traceback:

java.io.IOException: Failed to show
URI:file:/tmp/VASSAL/help/Online_Help/DummyHelpPage.html
        at sun.awt.X11.XDesktopPeer.launch(XDesktopPeer.java:93)
~[na:1.6.0_31]
        at sun.awt.X11.XDesktopPeer.browse(XDesktopPeer.java:82)
~[na:1.6.0_31]
        at java.awt.Desktop.browse(Desktop.java:386) ~[na:1.6.0_31]
        at VASSAL.tools.BrowserSupport.openURL(BrowserSupport.java:77)
~[Vengine.jar:na]
        at
VASSAL.build.module.documentation.BrowserHelpFile.launch(BrowserHelpFile.java:97)
~[Vengine.jar:na]
        at
VASSAL.build.module.documentation.BrowserHelpFile$1.actionPerformed(BrowserHelpFile.java:87)
~[Vengine.jar:na]
        at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
~[na:1.6.0_31]
        at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
~[na:1.6.0_31]
        at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
~[na:1.6.0_31]
        at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
~[na:1.6.0_31]
        at javax.swing.AbstractButton.doClick(AbstractButton.java:374)
~[na:1.6.0_31]
        at
javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:829)
~[na:1.6.0_31]
        at
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:873)
~[na:1.6.0_31]
        at java.awt.Component.processMouseEvent(Component.java:6288)
~[na:1.6.0_31]
        at
javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
~[na:1.6.0_31]
        at java.awt.Component.processEvent(Component.java:6053)
~[na:1.6.0_31]
        at java.awt.Container.processEvent(Container.java:2045)
~[na:1.6.0_31]
        at java.awt.Component.dispatchEventImpl(Component.java:4649)
~[na:1.6.0_31]
        at java.awt.Container.dispatchEventImpl(Container.java:2103)
~[na:1.6.0_31]
        at java.awt.Component.dispatchEvent(Component.java:4475)
~[na:1.6.0_31]
        at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
~[na:1.6.0_31]
        at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
~[na:1.6.0_31]
        at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
~[na:1.6.0_31]
        at java.awt.Container.dispatchEventImpl(Container.java:2089)
~[na:1.6.0_31]
        at java.awt.Window.dispatchEventImpl(Window.java:2588)
~[na:1.6.0_31]
        at java.awt.Component.dispatchEvent(Component.java:4475)
~[na:1.6.0_31]
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:675)
~[na:1.6.0_31]
        at java.awt.EventQueue.access$300(EventQueue.java:96)
~[na:1.6.0_31]
        at java.awt.EventQueue$2.run(EventQueue.java:634) ~[na:1.6.0_31]
        at java.awt.EventQueue$2.run(EventQueue.java:632) ~[na:1.6.0_31]
        at java.security.AccessController.doPrivileged(Native Method)
~[na:1.6.0_31]
        at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108)
~[na:1.6.0_31]
        at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:119)
~[na:1.6.0_31]
        at java.awt.EventQueue$3.run(EventQueue.java:648) ~[na:1.6.0_31]
        at java.awt.EventQueue$3.run(EventQueue.java:646) ~[na:1.6.0_31]
        at java.security.AccessController.doPrivileged(Native Method)
~[na:1.6.0_31]
        at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108)
~[na:1.6.0_31]
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:645)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
~[na:1.6.0_31]
2014-09-01 15:36:20,875 [3-AWT-EventQueue-0] ERROR
VASSAL.build.module.documentation.BrowserHelpFile - 
java.io.FileNotFoundException: /tmp/VASSAL/help/Online_Help/Online
Help/DummyHelpPage.html (No such file or directory)
        at java.io.FileOutputStream.open(Native Method) ~[na:1.6.0_31]
        at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
~[na:1.6.0_31]
        at java.io.FileOutputStream.<init>(FileOutputStream.java:160)
~[na:1.6.0_31]
        at
VASSAL.build.module.documentation.BrowserHelpFile.extractContents(BrowserHelpFile.java:143)
[Vengine.jar:na]
        at
VASSAL.build.module.documentation.BrowserHelpFile.launch(BrowserHelpFile.java:94)
[Vengine.jar:na]
        at
VASSAL.build.module.documentation.BrowserHelpFile$1.actionPerformed(BrowserHelpFile.java:87)
~[Vengine.jar:na]
        at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
~[na:1.6.0_31]
        at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
~[na:1.6.0_31]
        at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
~[na:1.6.0_31]
        at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
~[na:1.6.0_31]
        at javax.swing.AbstractButton.doClick(AbstractButton.java:374)
~[na:1.6.0_31]
        at
javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:829)
~[na:1.6.0_31]
        at
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:873)
~[na:1.6.0_31]
        at java.awt.Component.processMouseEvent(Component.java:6288)
~[na:1.6.0_31]
        at
javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
~[na:1.6.0_31]
        at java.awt.Component.processEvent(Component.java:6053)
~[na:1.6.0_31]
        at java.awt.Container.processEvent(Container.java:2045)
~[na:1.6.0_31]
        at java.awt.Component.dispatchEventImpl(Component.java:4649)
~[na:1.6.0_31]
        at java.awt.Container.dispatchEventImpl(Container.java:2103)
~[na:1.6.0_31]
        at java.awt.Component.dispatchEvent(Component.java:4475)
~[na:1.6.0_31]
        at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
~[na:1.6.0_31]
        at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
~[na:1.6.0_31]
        at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
~[na:1.6.0_31]
        at java.awt.Container.dispatchEventImpl(Container.java:2089)
~[na:1.6.0_31]
        at java.awt.Window.dispatchEventImpl(Window.java:2588)
~[na:1.6.0_31]
        at java.awt.Component.dispatchEvent(Component.java:4475)
~[na:1.6.0_31]
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:675)
~[na:1.6.0_31]
        at java.awt.EventQueue.access$300(EventQueue.java:96)
~[na:1.6.0_31]
        at java.awt.EventQueue$2.run(EventQueue.java:634) ~[na:1.6.0_31]
        at java.awt.EventQueue$2.run(EventQueue.java:632) ~[na:1.6.0_31]
        at java.security.AccessController.doPrivileged(Native Method)
~[na:1.6.0_31]
        at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108)
~[na:1.6.0_31]
        at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:119)
~[na:1.6.0_31]
        at java.awt.EventQueue$3.run(EventQueue.java:648) ~[na:1.6.0_31]
        at java.awt.EventQueue$3.run(EventQueue.java:646) ~[na:1.6.0_31]
        at java.security.AccessController.doPrivileged(Native Method)
~[na:1.6.0_31]
        at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108)
~[na:1.6.0_31]
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:645)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
~[na:1.6.0_31]
        at
java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
~[na:1.6.0_31]

Looking forward to hearing from you,
And keep on the good job !

Christophe
cmassaloux at free.fr[1]

[1] mailto:cmassaloux at free.fr
-------------- next part --------------
A non-text attachment was scrubbed...
Name: DummyModule.zip
Type: application/zip
Size: 8015 bytes
Desc: not available
URL: <http://www.vassalengine.org/pipermail/messages/attachments/20140901/0a5c79e3/attachment.zip>
-------------- next part --------------

_______________________________________________
Read this topic online here:
http://www.vassalengine.org/forum/viewtopic.php?p=46216#p46216


More information about the messages mailing list