Skip to content

[IDE] Slow Startup - because of events trigged by 'boardsCustomMenus' #10214

@ricardojlrufino

Description

@ricardojlrufino

I am doing some analysis to improve the IDE startup time (I am discussing the topic in the email list).

I found another problem that is related to the menus. In particular: createBoardMenusAndCustomMenus, and in the method: filterVisibilityOfSubsequentBoardMenus.

What happens is that for each menu on a board such as Esp8266, it is calling LibrariesIndexer.rescanLibraries(), and it ends up costing a lot of time at startup and also when selecting a board.

This is the stack (not an error ...):

at processing.app.Base.onBoardOrPortChange (Base.java:1346)
at processing.app.Base $ 12.actionPerformed (Base.java:1605)
at processing.app.Base.filterVisibilityOfSubsequentBoardMenus (Base.java:1651)
at processing.app.Base.access $ 0 (Base.java:1635)
at processing.app.Base $ 11.actionPerformed (Base.java:1576)
at processing.app.Base.rebuildBoardsMenu (Base.java:1550)
at processing.app.Base. (Base.java:285)
at processing.app.Base.main (Base.java:150)

As you can see for each menu item, he is manually calling 'actionPerformed', and doing a lot of unnecessary things

Set log4j store directory /home/ricardo/.arduino15
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/media/ricardo/Dados/Workspace/Arduino/arduino-master/arduino-core/lib/slf4j-simple-1.7.22.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/media/ricardo/Dados/Workspace/Arduino/arduino-master/app/lib/slf4j-simple-1.7.22.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@48d7ad8b,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=115200]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@a53bb6f,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=80 MHz]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@6759f091,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=26 MHz]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@14a54ef6,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=512K (no SPIFFS)]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@3b8ee898,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=QIO]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@294bdeb4,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=40MHz]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@1f86099a,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=ck]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@f2c488,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Disabled]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@7bc9e6ab,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=None]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@4248ed58,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=v2 Lower Memory]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@4564e94b,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=2]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> menu javax.swing.JRadioButtonMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder@51745f40,flags=256,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Only Sketch]
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.filterVisibilityOfSubsequentBoardMenus(Base.java:1651)
	at processing.app.Base.access$0(Base.java:1635)
	at processing.app.Base$11.actionPerformed(Base.java:1576)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$11.actionPerformed(Base.java:1578)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base$12.actionPerformed(Base.java:1605)
	at processing.app.Base.rebuildBoardsMenu(Base.java:1550)
	at processing.app.Base.<init>(Base.java:285)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> onBoardOrPortChange main
java.lang.Throwable
	at processing.app.Base.onBoardOrPortChange(Base.java:1346)
	at processing.app.Base.<init>(Base.java:294)
	at processing.app.Base.main(Base.java:150)
(DEBUG)>>>>>>>>> rescanLibraries main
(DEBUG)>>>>>>>>> rescanLibraries main
>>>>> pdeKeywords = processing.app.syntax.PdeKeywords@63a28987
>>>>> pdeKeywords = processing.app.syntax.PdeKeywords@63a28987
>>>>> pdeKeywords = processing.app.syntax.PdeKeywords@63a28987
>>>>> pdeKeywords = processing.app.syntax.PdeKeywords@63a28987

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy