Skip to content

ide-1.9.x-beta: code completion fails when any library is invalid #11403

Open
@ben-xo

Description

@ben-xo

Version:

ide-1.9.x-beta nightly built just now

Issue:

When a library in the libraries folder is invalid (in my case, missing a header file that matches the folder name), code completion fails (even though compiling the sketch still works).

The behaviour is that no completion box is brought up by the shortcut. But, also there's no indication as to why it failed in the output pane, so it's a silent fail. (However, fortunately, there is output on stdout if I run Arduino IDE from Terminal).

It's perhaps worth noting that the error message about the invalid library happens all the time during compilation,(and so I've developed a blindness to it until now. It has not prevented any other behaviour before, so I've had no reason to fix it until now.

Workaround:

Moving the invalid library out of the libraries folder works around the problem.

Debugging output:

Whilst error messages do not appear in the error dialog, they do appear when running the IDE from Terminal.

Printed at the point of using the completion shortcut:

java.lang.NullPointerException
        at cc.arduino.packages.discoverers.PluggableDiscovery.run(PluggableDiscovery.java:78)
        at java.lang.Thread.run(Thread.java:748)
java.lang.NullPointerException
        at cc.arduino.packages.discoverers.PluggableDiscovery.run(PluggableDiscovery.java:78)
        at java.lang.Thread.run(Thread.java:748)
Invalid library found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4: no headers files (.h) found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4
Invalid library found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4: no headers files (.h) found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4
Invalid library found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4: no headers files (.h) found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4
Invalid library found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4: no headers files (.h) found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4
Invalid library found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4: no headers files (.h) found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4
Invalid library found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4: no headers files (.h) found in /Users/ben/Documents/Arduino/libraries/ArduinoFHT4
/Users/ben/Downloads/Arduino 1.9.0-beta.app/Contents/Java/arduino-builder -code-complete-at /Users/ben/Documents/Arduino/vu3/vu3.ino:35:20 -logger=machine -hardware /Users/ben/Downloads/Arduino 1.9.0-beta.app/Contents/Java/hardware -hardware /Users/ben/Library/Arduino15/packages -tools /Users/ben/Downloads/Arduino 1.9.0-beta.app/Contents/Java/tools-builder -tools /Users/ben/Downloads/Arduino 1.9.0-beta.app/Contents/Java/hardware/tools/avr -tools /Users/ben/Library/Arduino15/packages -built-in-libraries /Users/ben/Downloads/Arduino 1.9.0-beta.app/Contents/Java/libraries -libraries /Users/ben/Documents/Arduino/libraries -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10900 -build-path /var/folders/0s/75kn5wf101v8fwvwb169sbhr0000gn/T/arduino_build_190981 -warnings=all -build-cache /var/folders/0s/75kn5wf101v8fwvwb169sbhr0000gn/T/arduino_cache_960188 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=/Users/ben/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=/Users/ben/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17 -prefs=runtime.tools.avr-gcc.path=/Users/ben/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=/Users/ben/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.arduinoOTA.path=/Users/ben/Library/Arduino15/packages/arduino/tools/arduinoOTA/1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=/Users/ben/Library/Arduino15/packages/arduino/tools/arduinoOTA/1.3.0 -experimental /Users/ben/Documents/Arduino/vu3/vu3.ino
autocomplete failure output:
[]
#include <Arduino.h>
#line 1 "/Users/ben/Documents/Arduino/vu3/vu3.ino"

… content of my sketch …


com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
 at [Source: (String)""; line: 1, column: 0]
        at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)
        at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4133)
        at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3988)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2992)
        at cc.arduino.autocomplete.ClangCompletionProvider.getCompletionsImpl(ClangCompletionProvider.java:99)
        at org.fife.ui.autocomplete.CompletionProviderBase.getCompletions(CompletionProviderBase.java:104)
        at org.fife.ui.autocomplete.AutoCompletion.refreshPopupWindow(AutoCompletion.java:801)
        at org.fife.ui.autocomplete.AutoCompletion$AutoCompleteAction.actionPerformed(AutoCompletion.java:1351)
        at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1668)
        at javax.swing.JComponent.processKeyBinding(JComponent.java:2882)
        at javax.swing.JComponent.processKeyBindings(JComponent.java:2929)
        at javax.swing.JComponent.processKeyEvent(JComponent.java:2845)
        at java.awt.Component.processEvent(Component.java:6316)
        at java.awt.Container.processEvent(Container.java:2239)
        at java.awt.Component.dispatchEventImpl(Component.java:4889)
        at java.awt.Container.dispatchEventImpl(Container.java:2297)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
        at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:834)
        at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1102)
        at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:973)
        at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:799)
        at java.awt.Component.dispatchEventImpl(Component.java:4760)
        at java.awt.Container.dispatchEventImpl(Container.java:2297)
        at java.awt.Window.dispatchEventImpl(Window.java:2746)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
        at java.awt.EventQueue$4.run(EventQueue.java:733)
        at java.awt.EventQueue$4.run(EventQueue.java:731)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

For my example, removing ArduinoFHT4 allows autocomplete to succeed.

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