Missing bindings for things seem to stop processing of .things files

Hoping to get some confirmation here one some behavior I experienced while getting a nightly build up and running.

Have a “working-ish” build that I downloaded after Christmas that was mostly working, but I was starting to experience issues I have reported here. Wanting a clean system, created a new “opennight” directory, put a clean system there, and moving stuff from the old to the nightly.

In the process, I forgot to enable the “exec” binding. When the X.things file was read in and got to that line, it seemed to ignore everything after it. I tried different positions for that first line, and any line after that first exec line failed to load.

Is this a known issue?

Are there errors in the log when it loads this file?

I turned up the general log to trace, and I see every before the offending line, usually like this (with tons of jetty line removed as they don’t look relevant)

20:45:14.520 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'jack.things’
20:45:14.542 [DEBUG] [er.antlr.AbstractInternalAntlrParser] - Parsing took: 16 ms
20:45:14.544 [DEBUG] [.linking.impl.AbstractCleaningLinker] - beforeModelLinked took: 0ms
20:45:14.545 [DEBUG] [.linking.impl.AbstractCleaningLinker] - doLinkModel took:1ms
20:45:14.546 [DEBUG] [.linking.impl.AbstractCleaningLinker] - afterModelLinked took: 1ms
20:45:14.604 [WARN ] [.thing.internal.GenericThingProvider] - Thing exe does not have a bridge so it needs to be defined in full notation like :exe:check
20:45:14.639 [INFO ] [me.event.ThingStatusInfoChangedEvent] - ‘exec:command:office_desk_backlight_check’ changed from ONLINE to UNINITIALIZED (HANDLER_MISSING_ERROR)
20:45:14.661 [INFO ] [smarthome.event.ThingRemovedEvent ] - Thing ‘exec:command:office_desk_backlight_check’ has been removed.
20:45:14.662 [WARN ] [.thing.internal.GenericThingProvider] - Thing exe does not have a bridge so it needs to be defined in full notation like :exe:check
20:45:14.670 [WARN ] [.thing.internal.GenericThingProvider] - Thing exe does not have a bridge so it needs to be defined in full notation like :exe:check
20:45:14.685 [INFO ] [smarthome.event.ThingUpdatedEvent ] - Thing ‘exec:command:office_desk_backlight’ has been updated.
20:45:14.692 [INFO ] [smarthome.event.ThingUpdatedEvent ] - Thing ‘exec:command:office_desk_backlight_ping’ has been updated.
20:45:14.691 [WARN ] [.thing.internal.GenericThingProvider] - Thing exe does not have a bridge so it needs to be defined in full notation like :exe:check

For comparison, here is the .things file that generates this:

exec:command:office_desk_backlight “TP-PlugSwitch” [command="/bin/tplink.exe %2$s", interval=0, timeout=5, autorun=false]
exec:command:office_desk_backlight_ping “TP-PlugPing” [command="/bin/cping.exe --ip 192.168.2.3", interval=30, timeout=30", transform=“REGEX(.sent(.)replies.)", autorun=true]
exec:command:office_desk_backlight_check “TP-PlugStatus” [command="/bin/tplink.exe check", interval=15, timeout=5, transform=“REGEX(.stateX":"(.)”.
)”, autorun=true]

If I move the *_ping binding to after the check one, they are both fine, and I just see:

20:55:13.002 [INFO ] [smarthome.event.ThingUpdatedEvent ] - Thing ‘exec:command:office_desk_backlight’ has been updated.
20:55:13.010 [INFO ] [smarthome.event.ThingUpdatedEvent ] - Thing ‘exec:command:office_desk_backlight_check’ has been updated.
20:55:13.012 [INFO ] [smarthome.event.ThingUpdatedEvent ] - Thing ‘exec:command:office_desk_backlight_ping’ has been updated.

Does that help?

It looks like a lot of internal to OH messages. I’d file an issue, probably with Eclipse SmartHome.

Agreed. Added as https://github.com/eclipse/smarthome/issues/2863