arduino / arduino/Arduino

[arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36]Delete tab in IDE causes problems

Open
#7,229 0 comments 0 reactions 0 assignees View on GitHub
Type: Bug
Dominant language
Java
Stars
14.6k
Forks
7k
PR merge metrics
No merged PRs in 30d

Description

OS is Windows 7 Enterprise, SP1. Fully patched to my knowledge.

Not sure if this is the correct section to post.

Create a sketch with ino, one .h and one .cpp
Verify OK

Add additional tab
Verify OK

Delete the new tab results in error
```
Could not createInput() for C:\Users\sterretje\Documents\Arduino\multiple_tabs\abc.h
java.io.FileNotFoundException: C:\Users\sterretje\Documents\Arduino\multiple_tabs\abc.h (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at processing.app.legacy.PApplet.createInput(PApplet.java:595)
at processing.app.legacy.PApplet.loadStrings(PApplet.java:254)
at processing.app.BaseNoGui.loadFile(BaseNoGui.java:655)
at processing.app.SketchFile.load(SketchFile.java:256)
at processing.app.EditorTab.reload(EditorTab.java:519)
at processing.app.tools.WatchDir.lambda$processEvents$0(WatchDir.java:170)
at java.util.ArrayList.forEach(ArrayList.java:1255)
at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1080)
at processing.app.tools.WatchDir.processEvents(WatchDir.java:168)
at processing.app.Editor$55.run(Editor.java:2022)
at java.lang.Thread.run(Thread.java:748)
Warning: Failed to reload file: "abc.h"
Exception in thread "Thread-23" java.util.ConcurrentModificationException
at java.util.ArrayList.forEach(ArrayList.java:1258)
at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1080)
at processing.app.tools.WatchDir.processEvents(WatchDir.java:168)
at processing.app.Editor$55.run(Editor.java:2022)
at java.lang.Thread.run(Thread.java:748)
```

Trying to verify after that results in
```
C:\Users\sterretje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\arduino-builder -dump-prefs -logger=machine -hardware C:\Users\sterretje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\hardware -tools C:\Users\sterrtje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\tools-builder -tools C:\Users\sterretje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\hardware\tools\avr -built-in-libraries C:\Users\sterretje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\libraries -libraries C:\Users\sterretje\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10900 -build-path C:\Users\sterretje\AppData\Local\Temp\arduino_build_144164 -warnings=all -prefs=build.warn_data_percentage=75 -verbose C:\Users\sterretje\Documents\Arduino\multiple_tabs\multiple_tabs.ino
C:\Users\sterretje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\arduino-builder -compile -logger=machine -hardware C:\Users\sterretje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\hardware -tools C:\Users\sterrtje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\tools-builder -tools C:\Users\sterretje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\hardware\tools\avr -built-in-libraries C:\Users\sterretje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\libraries -libraries C:\Users\sterretje\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10900 -build-path C:\Users\sterretje\AppData\Local\Temp\arduino_build_144164 -warnings=all -prefs=build.warn_data_percentage=75 -verbose C:\Users\sterretje\Documents\Arduino\multiple_tabs\multiple_tabs.ino
Using board 'uno' from platform in folder: C:\Users\sterretje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Users\sterretje\Downloads\Arduino\arduino-1.9.0-beta-windows\arduino-PR-beta1.9-BUILD-36\hardware\arduino\avr
Build options changed, rebuilding all
mkdir C:\Users\sterretje\AppData\Local\Temp\arduino_build_144164\sketch: Access is denied.
Error compiling for board Arduino/Genuino Uno.
```

Trying to access the sketch directory in the AppData directory in windows explorer after that results in access denied.

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure by creating a sketch with .ino, .h, and .cpp files, adding a tab, and deleting it. Start with EditorTab.java and WatchDir.java, then inspect the related stack-trace paths in SketchFile.java and BaseNoGui.java; done means deleting the tab no longer causes reload or concurrent-modification errors and verification succeeds.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.