Skip to content

CLI using --port gives NullPointerException at DiscoveryManager in beta1.9 #8400

Closed
@jerdna-regeiz

Description

@jerdna-regeiz

(First thinks first: Thank you for arduino ide!)
Using the CLI of Arduino IDE with the --port parameter throws a NullPointerException on initialization of the DiscoveryManager.

Tested with arduino-PR-beta1.9-BUILD-96

With --port it does not even try to compile (or do anything):

>>> arduino --verify --board esp8266:esp8266:nodemcu --port /dev/ttyACM0 sketch.ino
Picked up JAVA_TOOL_OPTIONS:
java.lang.NullPointerException
        at cc.arduino.packages.DiscoveryManager.<init>(DiscoveryManager.java:64)
        at processing.app.BaseNoGui.getDiscoveryManager(BaseNoGui.java:260)
        at processing.app.BaseNoGui.selectSerialPort(BaseNoGui.java:983)
        at processing.app.helpers.CommandlineParser.parseArgumentsPhase1(CommandlineParser.java:144)
        at processing.app.Base.<init>(Base.java:218)
        at processing.app.Base.main(Base.java:153)

Without --port everything works as expected (IOException does not influence the build or upload...):

>>> arduino --verify --board esp8266:esp8266:nodemcu sketch.ino
Picked up JAVA_TOOL_OPTIONS:
Loading configuration...
Initializing packages...
found discovery: serial -> {runtime.ide.path}/tools/serial-discovery
with preferencess -> {
  pattern = {runtime.ide.path}/tools/serial-discovery
}

found discovery: mdns -> {runtime.ide.path}/tools/mdns-discovery
with preferencess -> {
  pattern = {runtime.ide.path}/tools/mdns-discovery
}

Preparing boards...
Verifying...
Sketch uses 287520 bytes (27%) of program storage space. Maximum is 1044464 bytes.
Global variables use 26976 bytes (32%) of dynamic memory, leaving 54944 bytes for local variables. Maximum is 81920 bytes.
java.io.IOException: Stream closed
        at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:336)
        at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.ensureLoaded(ByteSourceJsonBootstrapper.java:522)
        at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.detectEncoding(ByteSourceJsonBootstrapper.java:150)
        at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.constructParser(ByteSourceJsonBootstrapper.java:246)
        at com.fasterxml.jackson.core.JsonFactory._createParser(JsonFactory.java:1315)
        at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:820)
        at cc.arduino.packages.discoverers.PluggableDiscovery.run(PluggableDiscovery.java:79)
        at java.lang.Thread.run(Thread.java:748)

It dosn't matter what argument you pass to --port or if the given device exists. It seems to die before accessing anything. In fact NO argument matters, it will crash as long as --port is given (as is provided an argument):

>>> arduino --port /dev/abc   
Picked up JAVA_TOOL_OPTIONS:
java.lang.NullPointerException
        at cc.arduino.packages.DiscoveryManager.<init>(DiscoveryManager.java:64)
        at processing.app.BaseNoGui.getDiscoveryManager(BaseNoGui.java:260)
        at processing.app.BaseNoGui.selectSerialPort(BaseNoGui.java:983)
        at processing.app.helpers.CommandlineParser.parseArgumentsPhase1(CommandlineParser.java:144)
        at processing.app.Base.<init>(Base.java:218)
        at processing.app.Base.main(Base.java:153)

Metadata

Metadata

Assignees

Labels

Component: CLIThe Arduino IDE's command line interfaceIDE 1.9.x BetaRelated to the Arduino IDE Beta Build

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions