kayler-renslow / arma-dialog-creator

A dialog/GUI creation tool for Arma 3.
MIT License
76 stars 12 forks source link

Error during stringtable import. #42

Open StickieBE opened 5 years ago

StickieBE commented 5 years ago

Re-opening issue #37 because bug is still present.

Version and Build

v: 1.0.7 / b: 60 / Java: 1.8.0_201

Summary

Error when trying to import a default stringtable.xml. stringtable.xml:


<?xml version="1.0" encoding="utf-8" ?>
<Project name="Any Name">
    <Package name="Mission One">
        <Container name="Some Words">
            <Key ID="STR_myKey">
                <Original>Hey there</Original>
            </Key>
        </Container>
    </Package>
</Project>

Detail

Screenshot: https://i.imgur.com/D6XKqSi.png

Stack Trace:

java.lang.IllegalArgumentException: id 'STR_myKey' isn't proper
    at com.kaylerrenslow.armaDialogCreator.arma.stringtable.StringTableKey.setKey(StringTableKey.java:68)
    at com.kaylerrenslow.armaDialogCreator.arma.stringtable.impl.StringTableKeyImpl.<init>(StringTableKeyImpl.java:40)
    at com.kaylerrenslow.armaDialogCreator.data.xml.DefaultStringTableXmlParser.fetchKeys(DefaultStringTableXmlParser.java:93)
    at com.kaylerrenslow.armaDialogCreator.data.xml.DefaultStringTableXmlParser.loadContainerElements(DefaultStringTableXmlParser.java:67)
    at com.kaylerrenslow.armaDialogCreator.data.xml.DefaultStringTableXmlParser.loadPackageElements(DefaultStringTableXmlParser.java:57)
    at com.kaylerrenslow.armaDialogCreator.data.xml.DefaultStringTableXmlParser.createStringTableInstance(DefaultStringTableXmlParser.java:44)
    at com.kaylerrenslow.armaDialogCreator.gui.main.actions.mainMenu.EditStringTableAction.handle(EditStringTableAction.java:39)
    at com.kaylerrenslow.armaDialogCreator.gui.main.actions.mainMenu.EditStringTableAction.handle(EditStringTableAction.java:24)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.control.MenuItem.fire(MenuItem.java:462)
    at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1405)
    at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.lambda$createChildren$343(ContextMenuContent.java:1358)
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
    at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
    at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
    at com.sun.glass.ui.View.notifyMouse(View.java:937)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
    at java.lang.Thread.run(Unknown Source)

THREAD:Arma Dialog Creator JavaFX Thread
StickieBE commented 4 years ago

@kayler-renslow

Upon revisiting this a while back, I noticed the error has to do with the string format.

str_prefix_keyname is required, instead of the provided str_keyname. This, in turn, is clearly pointed out by

java.lang.IllegalArgumentException: id 'STR_myKey' isn't proper

But I didn't understand what the error message meant.

Consider this closed if this is intended behaviour.

kayler-renslow commented 4 years ago

This is intentional behavior, but I think I did some testing when this issue was created to see if the tag part was required in the stringtable key name and I don't think it is. That would make this a design bug.