I tried to downgrade a library from 1.2.0 to 1.1.0 and I got: [exec] java.lang.RuntimeException: java.util.ConcurrentModificationException [exec] at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248) [exec] at java.lang.Thread.run(Thread.java:748) [exec] Caused by: java.util.ConcurrentModificationException [exec] at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1239) [exec] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) [exec] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) [exec] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) [exec] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) [exec] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) [exec] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) [exec] at cc.arduino.contributions.libraries.LibrariesIndexer.rescanLibraries(LibrariesIndexer.java:165) [exec] at cc.arduino.contributions.libraries.LibrariesIndexer.setLibrariesFolders(LibrariesIndexer.java:118) [exec] at processing.app.BaseNoGui.onBoardOrPortChange(BaseNoGui.java:677) [exec] at processing.app.Base.onBoardOrPortChange(Base.java:1346) [exec] at processing.app.Base$11.actionPerformed(Base.java:1578) [exec] at processing.app.Base.rebuildBoardsMenu(Base.java:1550) [exec] at processing.app.Base$8.onIndexesUpdated(Base.java:1378) [exec] at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:246) [exec] ... 1 more
after clicking "Upgrade" to bring it back to 1.2.0: java.lang.RuntimeException: java.lang.NullPointerExceptionat cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.NullPointerExceptionjava.lang.NullPointerExceptionjava.lang.RuntimeException: java.lang.NullPointerExceptionat cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.NullPointerExceptionjava.lang.NullPointerExceptionjava.lang.RuntimeException: java.lang.NullPointerExceptionat cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.NullPointerExceptionjava.lang.NullPointerExceptionjava.lang.RuntimeException: java.lang.NullPointerExceptionat cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.NullPointerExceptionjava.lang.NullPointerExceptionjava.lang.RuntimeException: java.lang.NullPointerExceptionat cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.NullPointerExceptionjava.lang.NullPointerExceptionjava.lang.RuntimeException: java.lang.NullPointerExceptionat cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.NullPointerExceptionjava.lang.NullPointerExceptionjava.lang.RuntimeException: java.lang.NullPointerExceptionat cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.NullPointerException Index: 0, Size: 0java.lang.RuntimeException: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248)at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0at java.util.ArrayList.rangeCheck(ArrayList.java:657)at java.util.ArrayList.get(ArrayList.java:433)at processing.app.Base.rebuildImportMenu(Base.java:1141)at processing.app.Base$11.actionPerformed(Base.java:1579)at processing.app.Base.rebuildBoardsMenu(Base.java:1550)at processing.app.Base$8.onIndexesUpdated(Base.java:1378)at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:246)... 1 more
BTW this doesn't always happen, I need to navigate and tinker a bit on the libraries list (i.e. select different version from menus, etc.). EDIT: adding another stacktrace just for completeness, it may help or it maybe not...: [exec] java.lang.RuntimeException: java.lang.NullPointerException [exec] at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248) [exec] at java.lang.Thread.run(Thread.java:748) [exec] Caused by: java.lang.NullPointerException [exec] at cc.arduino.contributions.libraries.LibrariesIndexer.rescanLibraries(LibrariesIndexer.java:158) [exec] at cc.arduino.contributions.libraries.LibraryInstaller.rescanLibraryIndex(LibraryInstaller.java:207) [exec] at cc.arduino.contributions.libraries.LibraryInstaller.install(LibraryInstaller.java:129) [exec] at cc.arduino.contributions.libraries.LibraryInstaller.install(LibraryInstaller.java:117) [exec] at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:239) [exec] ... 1 more [exec] java.lang.NullPointerException [exec] java.lang.RuntimeException: java.lang.NullPointerException [exec] at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:248) [exec] at java.lang.Thread.run(Thread.java:748) [exec] Caused by: java.lang.NullPointerException [exec] at cc.arduino.contributions.packages.ContributedPlatform.getResolvedTools(ContributedPlatform.java:113) [exec] at cc.arduino.contributions.packages.ContributedPackage.findResolvedTool(ContributedPackage.java:84) [exec] at cc.arduino.contributions.packages.ContributionsIndexer.syncToolWithFilesystem(ContributionsIndexer.java:316) [exec] at cc.arduino.contributions.packages.ContributionsIndexer.syncPackageWithFilesystem(ContributionsIndexer.java:307) [exec] at cc.arduino.contributions.packages.ContributionsIndexer.syncLocalPackages(ContributionsIndexer.java:286) [exec] at cc.arduino.contributions.packages.ContributionsIndexer.syncWithFilesystem(ContributionsIndexer.java:222) [exec] at processing.app.BaseNoGui.initPackages(BaseNoGui.java:491) [exec] at processing.app.Base$8.onIndexesUpdated(Base.java:1377) [exec] at cc.arduino.contributions.libraries.ui.LibraryManagerUI.lambda$onInstallPressed$4(LibraryManagerUI.java:246) [exec] ... 1 more [exec] Custom menu not found!
|
TableCellRender is designed to be reusable.
Te old implementation
created an instance, every time the mouse was over the line, This can lead to rendering problems, and low responsiveness
All Submissions:
Tests
I made a small benchmark with the results:
First run:
Second run:
Test Class..