Bug - Fixed Skills casting tab / window does not redraw

Veracity

Developer
Staff member
As for the Gear Changer problems - those weren't present in earlier builds (like r15509), where the issue for me was mainly in the Active Effects tab of Daily Deeds window, so there might be separate places to look at.
I fixed an issue that showed up on the Gear Changer tab. It was an NPE that showed up while repainting - i.e., in the Swing Thread - which did not result in a DEBUG log. Instead, there was a stack trace printed to my terminal window.

I wonder if the other things mentioned in this thread also printed such a stack trace? I don't know where those would show up on Windows when you launch a .jar file, rather than executing it from a terminal.
 
If launched from a command window, I think it would show there. But I use a shortcut. Could probably add some output piping there; not sure if that would work.

I'll take a shot with r15517 later, see what I can get, for future reference.
 

Darzil

Developer
I'm not sure it will show in a command window, but am trying anyway.

Thanks a lot for the catches on this, Veracity. If we can find a way to find these things on Windows I'll enjoy stamping on them!

Edit : Maybe it's just good connection today, but performance seems VERY good with this patch (or maybe because I started from a command prompt, will experiment).
 
Last edited:
Need to use java.exe, instead of javaw.exe. Sample of trace when recreating the issue with active effects:

Code:
C:\Users\...\Programs\kolmafia>"C:\Program Files (x86)\Java\jre1.8.0_31\bin\java.exe" -jar C:\Users\...\Programs\kolmafia\KoLmafia-15517.jar

KoLmafia v16.8 r15517
Released on February 11, 2014

Currently Running on Windows 7
Local Directory is C:\Users\...\Programs\kolmafia
Using Java 1.8.0_31

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at net.sourceforge.kolmafia.Modifiers.getModifiers(Modifiers.java:1814)
        at net.sourceforge.kolmafia.swingui.GearChangeFrame.showModifiers(GearChangeFrame.java:252)
        at net.sourceforge.kolmafia.swingui.widget.ListCellRendererFactory$DefaultRenderer.getListCellRendererComponent(ListCellRendererFactory.java:104)
        at javax.swing.plaf.basic.BasicListUI.paintCell(Unknown Source)
        at javax.swing.plaf.basic.BasicListUI.paintImpl(Unknown Source)
        at javax.swing.plaf.basic.BasicListUI.paint(Unknown Source)
        at javax.swing.plaf.ComponentUI.update(Unknown Source)
        at javax.swing.JComponent.paintComponent(Unknown Source)
        at javax.swing.JComponent.paint(Unknown Source)
        at javax.swing.JComponent.paintToOffscreen(Unknown Source)
        at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
        at javax.swing.RepaintManager.paint(Unknown Source)
        at javax.swing.JComponent._paintImmediately(Unknown Source)
        at javax.swing.JComponent.paintImmediately(Unknown Source)
        at javax.swing.RepaintManager$4.run(Unknown Source)
        at javax.swing.RepaintManager$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
        at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
        at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
        at javax.swing.RepaintManager.access$1300(Unknown Source)
        at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
        at java.awt.event.InvocationEvent.dispatch(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$1.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)
 
Top