[Tool] GD Stash

too generic a question :wink:

Read the documentation (in the doc subdir) and if you still have questions, ask a more specific one

Hi,

Iā€™ve tried both the jarfile and windows executable flavors of GDStash with a 32-bit JVM and I canā€™t successfully import the database. Each time it fails with the message of ā€œMap failedā€ and ā€œExtraction of items.arc failedā€. Am I SOL with a 32-bit version of Windows and Java?

the executable should work (it does for me), the jar definitely will not (or rather, it will not with Oracleā€™s JVM)

whenever i try to craft an item it cant load the affixes
Grim Dawn 1.0.0.5
Gdstash 1.0.3
Dawn Of Heroes 3.4
the console throws

java.util.MissingResourceException

Exception in thread "AWT-EventQueue-0" java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key RET_SLEEP
        at java.util.ResourceBundle.getObject(Unknown Source)
        at java.util.ResourceBundle.getString(Unknown Source)
        at org.gdstash.description.BonusDetail.parseOffense(BonusDetail.java:320)
        at org.gdstash.description.BonusDetail.parseDamage(BonusDetail.java:465)
        at org.gdstash.description.BonusDetail.createDamageInfos(BonusDetail.java:84)
        at org.gdstash.description.BonusDetail.<init>(BonusDetail.java:37)
        at org.gdstash.db.DBDamage.getBonusDetail(DBDamage.java:798)
        at org.gdstash.db.DBAffix.getBonusComposer(DBAffix.java:822)
        at org.gdstash.db.DBAffix.getString(DBAffix.java:884)
        at org.gdstash.db.DBAffix.toString(DBAffix.java:998)
        at org.gdstash.db.DBAffix$StringComparator.compare(DBAffix.java:49)
        at org.gdstash.db.DBAffix$StringComparator.compare(DBAffix.java:34)
        at java.util.TimSort.countRunAndMakeAscending(Unknown Source)
        at java.util.TimSort.sort(Unknown Source)
        at java.util.Arrays.sort(Unknown Source)
        at java.util.List.sort(Unknown Source)
        at java.util.Collections.sort(Unknown Source)
        at org.gdstash.ui.GDItemCraftPane.fillCombos(GDItemCraftPane.java:574)
        at org.gdstash.ui.GDItemCraftPane.initItemInfo(GDItemCraftPane.java:462)
        at org.gdstash.ui.GDItemCraftPane.setItem(GDItemCraftPane.java:436)
        at org.gdstash.ui.GDCraftPane.setSelectedItem(GDCraftPane.java:635)
        at org.gdstash.ui.GDCraftPane$TableActionListener.actionPerformed(GDCraftPane.java:45)
        at org.gdstash.ui.GDItemNameTablePane.fireActionEvent(GDItemNameTablePane.java:413)
        at org.gdstash.ui.GDItemNameTablePane.setSelectedItem(GDItemNameTablePane.java:390)
        at org.gdstash.ui.GDItemNameTablePane.access$000(GDItemNameTablePane.java:38)
        at org.gdstash.ui.GDItemNameTablePane$GDListListener.valueChanged(GDItemNameTablePane.java:85)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
        at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(Unknown Source)
        at javax.swing.plaf.basic.BasicTableUI$Handler.setValueIsAdjusting(Unknown Source)
        at javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(Unknown Source)
        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.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(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)

When i look in the inventory it gets the correct names and afixes, but i cant craft anything new

Thanks, will have to look into that, the mod must be using something that GD does not by default, so it does not find the text for it in the .properties files

Did anyone notice that if you switch sex from male to female, you will actually get a beard shemale??

lol

is that still true after you restart GD ? otherwise that is just GD keeping some textures in memory I assume

Version 1.0.3a released

Fixes the below resource error

is there any additional debug output or logs i can send you around the error iā€™m getting that would help you troubleshoot it?

Chars keep that way of look forever IN GAME, without GD.

No, there is no additional output / log. I also know what the issue is as I had analyzed it in the past. I do not understand why it would happen with the executable thoughā€¦

The issue is not so much my code as a bug in Oracleā€™s 32bit JVM. To extract the images from items.arc, I read the entire file into memory and when I allocate more than, say, 150MB at once, the 32bit JVM throws a fit, regardless of how much memory you have available. As the file is bigger, that is what happens here.

I have a version here which runs on the 32bit JVM by breaking that buffer into 100MB pieces by using my own buffer class rather than the standard one. Ironically that does use up more heap space though, which is why I stuck with the standard class, esp. since the executable does not have that issue, so there is / should be a solution for people with 32 bit OSes

The executable uses a different JVM and at least on my machine it does not have that error. Given the number of downloads and the lack of reports concerning that issue Iā€™d say it is working as intended.
No idea why for you it would have that error though. The only thing I can think of is that you really were low on memory. How much RAM does your PC have ? Or your items.arc is considerably bigger for some reason (mods), how big is that (should be around 330 MB) ?

You could try a different JVM, as the problem is Oracle specific. The IBM JVM for example does not have that issue in the 32bit version.
The ā€˜problemā€™ with that is that IBM does not really offer it as a separate download. You need to register with them and get their Eclipse development kit, which includes their JVM. So this might be more hoops than youā€™d want and unless you know how to get their JVM to execute the jar (which is not all that hardā€¦) nothing has been accomplished anyway.

TBH i donā€™t have a lot of RAM, iā€™ve got 4GB and run 32bit windows, so iā€™m only able to use about 3.2GB of that. i only run vanilla GD, so my items.arc should be the usual size.

thatā€™s interesting about the oracle 32bit JVM choking on allocating 150MB chunks, suppose i could give installing eclipse a shot to get at that alternate JRE. havenā€™t used it in about four years, hope itā€™s gotten a lot better since thenā€¦ :stuck_out_tongue:

4 GB should be fine, unless most of it is used up alreadyā€¦ the import takes about 1 GB at most for vanilla GD, so if you have that much free it should work with the executable.

You can ignore Eclipse, all you care for is the IBM JVM, you can even delete the rest after the install :wink:

The ā€œshemaleā€ issue is still there.

That is why it is not listed as fixed :wink:

The issue is not in the player.gdc file, which is the only file I change. In it there is just a flag that distinguishes between male and female, no meshes or texturesā€¦

The strangest part of this issue is that from body shape to hair style are changed, except faceā€¦lol

This is such a full-featured app that it takes a bit of time to appreciate the convenience it provides to the player. Thank you so much for continuing to support it! :slight_smile:

You are welcome, thanks for the praise :wink:

Just lost all the tabs in my shared stash with all the stuff in it. Donā€™t really know what happened there :smiley: Is there a way to get them back somehow? Thx

Are you using cloud save ? I never had this happen, but so far this seems to be the case for anyone who had it happen (but then I only tested with the cloud a bit, I am not actually using it). That is more an issue with the cloud than with the tool, the tool saves the file properly and the cloud then interferesā€¦
At the very least it is unreliable at reading the local vs the cloud stash (the issue I frequently had with it), so you can store items in GD Stash, but retrieving them is trial and errorā€¦ I recommend not using cloud save in any case, if you want to use the tool

The tool creates a backup of the stash, rename transfer.t00/h00 to transfer.gst/gsh to get the previous version back, t01 for the one before that, and so forth