build to test; 3.1.0-beta3 soon?

Joel,

I can’t build the trunk. HeapFinder references Info.JavaBinPath which does not exist.

Regards,
Brent.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Thus spake “Brent Easton”:

It’s there now. I forgot to commit Info.java.


J.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Two things.

  1. When opening some modules (such as Triumph of Chaos) exceptions are being thrown when Vassal cannot find an image file, can this be turned off so that older modules still work without error? If opened for Edit these exceptions should still be thrown to alert the module designer only… but not from inside the player.

  2. Can we make image file-naming non case-sensitive? I’ve noticed older modules are breaking because they are looking for something like Astrakhan.PNG instead of astrakhan.png.
    I know it isn’t ideal but it’s going to prevent a lot of user headaches when a ton of modules start throwing errors.

Cheers and thanks for the hard work!

Ben

Oh and by the way Joel, that module with the tree bug is Three Battles of Manassas. You can grab it here mediafire.com/vassal

Also, can I raise my extreme distaste for the lack of a mandatory “Delete” trait on every piece? I’ve been using the Triumph of Chaos module and it has been driving me nuts!!! Pieces on the board everywhere that should be deleted for one reason or another but cannot because the module designer didn’t think anyone would need it! gahhhhh! haha So I’ve had to manually go in and put delete traits on all counters.

Ben

Ahh I see what the problem is; People are creating modules in a UNIX environment and stupidly creating both upper and lower-case files of the same name. So there are modules with files called piece.png and Piece.png which is fine under UNIX but breaks when you extract the module in Windows.

Thus spake “bsmith”:

I was thinking it was exactly the opposite: People are creating modules
in a Windows environment but paying no attention to case, and end up
with a mess because ZIP is case sensitive internally. That’s how foo.PNG
and foo.png both ended up in the same module in all of the cases I’ve
been able to verify myself.


J.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Thus spake “bsmith”:

I don’t get any File Not Found errors with the current ToC module and what
I have uncommiteed on my uckelman-cur branch right now.

That aside, there is a question of whether and how to notify the user that
a file is missing. I think we should notify the user when a file is
missing, for two reasons: The user has no way of knowing that something is
wrong with if there are no warnings, and displaying warnings like this
encourages users to complain, which might eventually get broken modules
fixed.

As for how to notify the user: A standard ‘missing image’ image won’t
work well because we can’t tell what size it should be and having lots
of pieces with ‘missing image’ images would be worse than having no
images for them at all.

When you’re seeing this, is there some file with a case-insensitively equal
name which is the right file?


J.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Thus spake “bsmith”:

Ben, I need a ZIP file which exhibits this behavior so I can see what’s
going on. I don’t have any myself.


J.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Thus spake “bsmith”:

What “tree” bug?


J.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Thus spake Joel Uckelman:

Never mind. I believe this was fixed in svn3956.

J.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Oh yeah sorry. The file which shows strange zip behavior is actually the “Three Battles of Manassas” module from mediafire.com/vassal.

When ending a log-file, this error always occurs. The log-file name in this case is “test”:

java.io.FileNotFoundException: X:\GBoA\test (The system cannot find the file specified) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.<init>(Unknown Source) at java.util.zip.ZipFile.<init>(Unknown Source) at VASSAL.tools.ArchiveWriter.<init>(ArchiveWriter.java:72)

Ah, it only appears to happen with ToC module version 4e, not version 3.

You can get 4e here Joel: mediafire.com/?0izubznnxpz

Yeah I’m not sure what the user should be told. It may as well be “Warning: Something is broken which may, or may not, ruin your entire game.”. ha ha

Thus spake “bsmith”:

On my system, I get a ZipException (with a file-not-found message) instead!
How obnoxious, as this means we can’t use the exception thrown to
distinguish between a disk I/O problem and the nonexistence of the file.

This is fixed in svn3989.

J.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Thus spake “bsmith”:

I was neglecting to clear the compressed size when reusing ZipEntries for
umodified deflated files. Fixed in svn3989.


J.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Thus spake “bsmith”:

I didn’t realize that ImageIO.read() returns null if doesn’t recognize
the type of the image in the stream. I’d expected it to throw an
IOException, but there it is in the javadoc. This is fixed in svn3992.

However, the only way you could expose this bug is if you’re trying
to load something as an image which is not one. In this case, you
have a file called ‘camp’ in the images directory which appears to
be a saved game, and there must be some token someplace which has
that specified as one of its images.

In this case, both the module and VASSAL were broken.


J.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Still getting the error for image when no image deliberately exists in a layer / bacic piece with 3990 - this was brought up before way back

[1205239447]
– OS Windows 2003
– Java version 1.6.0_06
– VASSAL version 3.1.0-svn3990
– Manager
C:\Program Files\Java\jre1.6.0_06\bin\java -Xms256M -Xmx512M -cp lib\Vengine.jar;Vengine.jar VASSAL.launch.Editor
[1962849990]
– OS Windows 2003
– Java version 1.6.0_06
– VASSAL version 3.1.0-svn3990
– Editor
– Tims TBK version 0.0 Rebuild
[1962849990]
java.io.FileNotFoundException: 'images/ ’ not found in C:\Documents and Settings\Administrator\Desktop\NewTBKTim.vmod
at VASSAL.tools.DataArchive.getImageInputStream(DataArchive.java:209)
at VASSAL.tools.DataArchive.getImageSize(DataArchive.java:147)
at VASSAL.tools.imageop.SourceOpBitmapImpl.getImageSize(SourceOpBitmapImpl.java:130)
at VASSAL.tools.imageop.SourceOpBitmapImpl.fixSize(SourceOpBitmapImpl.java:117)
at VASSAL.tools.imageop.AbstractOpImpl.getWidth(AbstractOpImpl.java:606)
at VASSAL.tools.imageop.OpIcon.getIconWidth(OpIcon.java:103)
at VASSAL.counters.ImagePicker.setImageName(ImagePicker.java:98)
at VASSAL.counters.MultiImagePicker.setImageList(MultiImagePicker.java:145)
at VASSAL.counters.Embellishment$Ed.reset(Embellishment.java:1208)
at VASSAL.counters.Embellishment$Ed.(Embellishment.java:958)
at VASSAL.counters.Embellishment.getEditor(Embellishment.java:715)
at VASSAL.counters.PieceDefiner.edit(PieceDefiner.java:535)
at VASSAL.counters.PieceDefiner$7.mouseReleased(PieceDefiner.java:372)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(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)

Thus spake “Tim M”:

I thought we’d fixed this. I can’t reproduce it. How exactly are you
doing it?

BTW, while investigating this, I found two unrelated bugs:

  1. ColoredBorder was having an ArithemticException if you tried to paint
    a border around a piece with no size. Fixed in svn3993. (I found this
    while trying to drag a piece containing no images from the palette.)

  2. If you add a Board with no name to the Map, and then start a new
    game, you’ll get a NullPointerException. See this bug for details:

sourceforge.net/tracker/index.ph … tid=594231

This one isn’t fixed. I suspect that the solution is to have Board.getName()
return an empty string instead of null when the Board has no name, but I’m
not certain of that. Somebody else should look at this one.


J.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

Joel, re null image all Im doing is adding a layer making the first 2 or 3 levels null then adding an image on 3 or 4th layer. Save, exit and reopen and go to the piece and edit the layer again.

Different thing – I got the wonderful new bug dialog pop up – heres the error.

Cant exactly explain what I was doing except to say I was checking a auto card draw routine and going back and forth using the undo button to make sure it was functioning properly

1826555696]
– OS Windows 2003
– Java version 1.6.0_06
– VASSAL version 3.1.0-svn3990
– Manager
C:Program FilesJavajre1.6.0_06binjava -Xms256M -Xmx512M -cp libVengine.jar;Vengine.jar VASSAL.launch.Editor
[1538797472]
– OS Windows 2003
– Java version 1.6.0_06
– VASSAL version 3.1.0-svn3990
– Editor
– Tims TBK version 0.0 Rebuild
C:Program FilesJavajre1.6.0_06binjava -Xms256M -Xmx512M -cp libVengine.jar;Vengine.jar VASSAL.launch.Editor
[486002700]
– OS Windows 2003
– Java version 1.6.0_06
– VASSAL version 3.1.0-svn3990
– Editor
– Tims TBK version 0.0 Rebuild
C:Program FilesJavajre1.6.0_06binjava -Xms256M -Xmx512M -cp libVengine.jar;Vengine.jar VASSAL.launch.Player
[509237398]
– OS Windows 2003
– Java version 1.6.0_06
– VASSAL version 3.1.0-svn3990
– Player
– Tims TBK version 0.1 Rebuild
[509237398]
java.lang.NullPointerException
at VASSAL.build.module.map.PieceMover$DragHandler.dragGestureRecognized(PieceMover.java:1127)
at VASSAL.build.widget.PieceSlot$2.dragGestureRecognized(PieceSlot.java:299)
at java.awt.dnd.DragGestureRecognizer.fireDragGestureRecognized(Unknown Source)
at sun.awt.windows.WMouseDragGestureRecognizer.mouseDragged(Unknown Source)
at java.awt.Component.processMouseMotionEvent(Unknown Source)
at javax.swing.JComponent.processMouseMotionEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(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)

Post generated using Mail2Forum (mail2forum.com)

Joel,

That’s fine. No code I have ever seen will depend on a board with no name returning a null name.

B.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)