magefree / mage

Magic Another Game Engine
http://xmage.today
MIT License
1.9k stars 773 forks source link

Fatal client UI error (html text rendering) #11612

Open ssk97 opened 10 months ago

ssk97 commented 10 months ago

message.txt

image

Reporting for another player, occurred right as Thundering Tanadon was attempted to be played from hand during precombat main phase. Note the [[Dormant Grove]] having triggered in the game log. The client then locked up and no actions were able to be taken. Opening a new client and reconnecting fixed the issue.

The tournament included [[Future Sight]] and [[Spellbook]] emblems for all players but they don't seem related to the issue.

github-actions[bot] commented 10 months ago

Dormant Grove // Gnarled Grovestrider - (Gatherer) (Scryfall) (EDHREC)

{3}{G} Enchantment At the beginning of combat on your turn, put a +1/+1 counter on target creature you control. Then if that creature has toughness 6 or greater, transform Dormant Grove. :arrows_counterclockwise: Creature — Treefolk 3/6 Vigilance Other creatures you control have vigilance.

Future Sight - (Gatherer) (Scryfall) (EDHREC)

{2}{U}{U}{U} Enchantment Play with the top card of your library revealed. You may play lands and cast spells from the top of your library.

Spellbook - (Gatherer) (Scryfall) (EDHREC)

{0} Artifact You have no maximum hand size.

JayDi85 commented 2 months ago

Something wrong with editor pane and html text drawing (game logs, chats, card hint in text mode, etc).

Stack trace from attached file:

FATAL 2024-01-05 16:20:43,884 MAGE Client UI error                                                                       =>[AWT-EventQueue-0] EDTExceptionHandler.handle 
javax.swing.text.StateInvariantError: GlyphView: Stale view: javax.swing.text.BadLocationException: Invalid location
    at javax.swing.text.GlyphView.getText(GlyphView.java:137)
    at javax.swing.text.GlyphPainter1.getSpan(GlyphPainter1.java:60)
    at javax.swing.text.GlyphView.getPreferredSpan(GlyphView.java:592)
    at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:717)
    at javax.swing.text.html.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:157)
    at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    at javax.swing.text.html.ParagraphView.getMinimumSpan(ParagraphView.java:270)
    at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
    at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
    at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
    at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
    at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
    at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
    at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
    at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    at javax.swing.text.BoxView.layout(BoxView.java:708)
    at javax.swing.text.BoxView.setSize(BoxView.java:397)
    at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1722)
    at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    at javax.swing.JComponent.getPreferredSize(JComponent.java:1662)
    at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1333)
    at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:791)
    at java.awt.Container.layout(Container.java:1513)
    at java.awt.Container.doLayout(Container.java:1502)
    at java.awt.Container.validateTree(Container.java:1698)