Openhab-addons: [CoolMasterNet] devices don't update - errors in log when binding restarts

Created on 8 Jul 2018  路  17Comments  路  Source: openhab/openhab-addons

There was a previous issue (solved) with the binding stopping updating devices, and errors when the binding restarted.

There now seems to be another similar error. Same symptoms - binding will communicate outbound commands to the coolmasternet but stops updating state changes to openhab. Different log errors - see below.

Many thanks!

2018-07-08 21:32:18.939 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:kidsbed tried updating channel set_temp although the handler was already disposed.
2018-07-08 21:32:19.188 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:living tried updating channel on although the handler was already disposed.
2018-07-08 21:32:19.188 [ERROR] [ome.core.thing.link.ThingLinkManager] - Exception occurred while informing handler: null
java.lang.NullPointerException: null
    at org.openhab.binding.coolmasternet.handler.HVACHandler.getControllerHandler(HVACHandler.java:52) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.query(HVACHandler.java:122) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:103) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.handleCommand(HVACHandler.java:81) ~[?:?]
    at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:278) ~[?:?]
    at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]
2018-07-08 21:32:19.442 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:masterbed tried updating channel current_temp although the handler was already disposed.
2018-07-08 21:32:19.443 [ERROR] [ome.core.thing.link.ThingLinkManager] - Exception occurred while informing handler: null
java.lang.NullPointerException: null
    at org.openhab.binding.coolmasternet.handler.HVACHandler.getControllerHandler(HVACHandler.java:52) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.query(HVACHandler.java:122) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:104) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.handleCommand(HVACHandler.java:81) ~[?:?]
    at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:278) ~[?:?]
    at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]
2018-07-08 21:32:19.693 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:masterbed tried updating channel fan_speed although the handler was already disposed.
2018-07-08 21:32:19.943 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:masterbed tried updating channel fan_speed although the handler was already disposed.
2018-07-08 21:32:20.201 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:living tried updating channel current_temp although the handler was already disposed.
2018-07-08 21:32:20.203 [ERROR] [ome.core.thing.link.ThingLinkManager] - Exception occurred while informing handler: null
java.lang.NullPointerException: null
    at org.openhab.binding.coolmasternet.handler.HVACHandler.getControllerHandler(HVACHandler.java:52) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.query(HVACHandler.java:122) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:104) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.handleCommand(HVACHandler.java:81) ~[?:?]
    at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:278) ~[?:?]
    at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]
2018-07-08 21:33:02.256 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:living tried updating channel on although the handler was already disposed.
2018-07-08 21:33:15.524 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:kidsbed tried updating channel on although the handler was already disposed.
2018-07-08 21:33:15.783 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:masterbed tried updating channel on although the handler was already disposed.
2018-07-08 21:33:15.784 [ERROR] [ome.core.thing.link.ThingLinkManager] - Exception occurred while informing handler: null
java.lang.NullPointerException: null
    at org.openhab.binding.coolmasternet.handler.HVACHandler.getControllerHandler(HVACHandler.java:52) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.query(HVACHandler.java:122) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:99) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.handleCommand(HVACHandler.java:81) ~[?:?]
    at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:278) ~[?:?]
    at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]
2018-07-08 21:33:15.784 [ERROR] [ome.core.thing.link.ThingLinkManager] - Exception occurred while informing handler: null
java.lang.NullPointerException: null
    at org.openhab.binding.coolmasternet.handler.HVACHandler.getControllerHandler(HVACHandler.java:52) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.query(HVACHandler.java:122) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:103) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.handleCommand(HVACHandler.java:81) ~[?:?]
    at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:278) ~[?:?]
    at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]
2018-07-08 21:33:16.024 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:masterbed tried updating channel louvre_angle although the handler was already disposed.
2018-07-08 21:33:16.025 [ERROR] [ome.core.thing.link.ThingLinkManager] - Exception occurred while informing handler: null
java.lang.NullPointerException: null
    at org.openhab.binding.coolmasternet.handler.HVACHandler.getControllerHandler(HVACHandler.java:52) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.query(HVACHandler.java:122) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:113) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.handleCommand(HVACHandler.java:81) ~[?:?]
    at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:278) ~[?:?]
    at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]
2018-07-08 21:33:16.275 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:kidsbed tried updating channel on although the handler was already disposed.
2018-07-08 21:33:16.275 [ERROR] [ome.core.thing.link.ThingLinkManager] - Exception occurred while informing handler: null
java.lang.NullPointerException: null
    at org.openhab.binding.coolmasternet.handler.HVACHandler.getControllerHandler(HVACHandler.java:52) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.query(HVACHandler.java:122) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:103) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.handleCommand(HVACHandler.java:81) ~[?:?]
    at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:278) ~[?:?]
    at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]
2018-07-08 21:33:16.523 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:masterbed tried updating channel current_temp although the handler was already disposed.
2018-07-08 21:33:16.523 [ERROR] [ome.core.thing.link.ThingLinkManager] - Exception occurred while informing handler: null
java.lang.NullPointerException: null
    at org.openhab.binding.coolmasternet.handler.HVACHandler.getControllerHandler(HVACHandler.java:52) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.query(HVACHandler.java:122) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:104) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.handleCommand(HVACHandler.java:81) ~[?:?]
    at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:278) ~[?:?]
    at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]

All 17 comments

I just updated to the latest snapshot, and have the old "scheduled runnable" exception whenever the binding starts:

2018-07-10 12:00:51.389 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HVACHandler of thing coolmasternet:hvac:main:kidsbed tried updating channel on although the handler was already disposed.
2018-07-10 12:00:51.389 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception
java.lang.NullPointerException: null
    at org.openhab.binding.coolmasternet.handler.HVACHandler.getControllerHandler(HVACHandler.java:52) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.query(HVACHandler.java:122) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:103) ~[?:?]
    at org.openhab.binding.coolmasternet.internal.ControllerHandler.lambda$0(ControllerHandler.java:76) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]

After looking at the code I see it's possible the refresh job is not stopped when you edit and save the bridge Thing.

So can you test to see if it is fixed with this org.openhab.binding.coolmasternet-2.4.0-SNAPSHOT.zip?

To test, uninstall the default binding and then add this .zip after renaming it to .jar to the /addons directory.

I still don't have these devices or use this binding myself. :smile:

Thanks! That has started without error, and provided a few updates. I'll see how it does over the next 24 hours and report back.

Still pretty impressed you can debug this without actually having the device. If the problem persists I could temporarily give you remote access to the device and see if that helps (if you promise not to set all the thermostats to 40C and turn the heat on...)

Still working...

Did you also test editing the Controller (bridge) Thing to see if the NPEs and "tried updating channel on although the handler was already disposed" warnings are resolved?

The good news, yes. The bad news, different errors:

2018-07-12 10:03:45.142 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'aylesbury.things'
2018-07-12 10:03:45.146 [WARN ] [ore.common.registry.AbstractRegistry] - Could not remove element: null
java.lang.NullPointerException: null
    at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.preserveDynamicState(ThingRegistryImpl.java:177) ~[?:?]
    at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.onRemoveElement(ThingRegistryImpl.java:158) ~[?:?]
    at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.onRemoveElement(ThingRegistryImpl.java:1) ~[?:?]
    at org.eclipse.smarthome.core.common.registry.AbstractRegistry.removed(AbstractRegistry.java:174) ~[?:?]
    at org.eclipse.smarthome.core.common.registry.AbstractRegistry.removed(AbstractRegistry.java:1) ~[?:?]
    at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:59) ~[?:?]
    at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:74) ~[?:?]
    at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListenersAboutRemovedElement(AbstractProvider.java:82) ~[?:?]
    at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.lambda$20(GenericThingProvider.java:773) ~[?:?]
    at java.lang.Iterable.forEach(Iterable.java:75) [?:?]
    at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.modelChanged(GenericThingProvider.java:775) [136:org.eclipse.smarthome.model.thing:0.10.0.201806271317]
    at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:301) [119:org.eclipse.smarthome.model.core:0.10.0.201806271317]
    at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:139) [119:org.eclipse.smarthome.model.core:0.10.0.201806271317]
    at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:227) [119:org.eclipse.smarthome.model.core:0.10.0.201806271317]
    at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.processWatchEvent(FolderObserver.java:291) [119:org.eclipse.smarthome.model.core:0.10.0.201806271317]
    at org.eclipse.smarthome.core.service.WatchQueueReader.run(WatchQueueReader.java:240) [94:org.eclipse.smarthome.core:0.10.0.201806271317]
    at java.lang.Thread.run(Thread.java:748) [?:?]

This more looks like an issue in Eclipse SmartHome and not the binding this time. :wink:
Can you also please surround your logging with ``instead of ?
It's way more easy to read stack traces when each method call is on it's own line. :-)

Thanks - will do!

Whatever the error is, it doesn't seem very important, as the binding has continued to merrily update its items, and everything seems to be working. Shall I give it a couple of days' testing before I close this?

I just created a PR for this. The issue will be automatically closed once it is merged.

If you can reproduce the new NullPointerException you should enter an issue with details on how to reproduce it in the Eclipse SmartHome issue tracker to get it fixed.

Oh dear, possibly another problem with the binding. Just got this error, after which I think things have stopped updating:

2018-07-12 18:56:08.182 [ERROR] [ng.coolmasternet.handler.HVACHandler] - Query 'query L1.101 o' failed: No response from CoolMasterNet unit 192.168.1.130:10102
2018-07-12 18:56:09.393 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception
java.lang.NumberFormatException: null
    at java.math.BigDecimal.<init>(BigDecimal.java:494) ~[?:?]
    at java.math.BigDecimal.<init>(BigDecimal.java:383) ~[?:?]
    at java.math.BigDecimal.<init>(BigDecimal.java:806) ~[?:?]
    at org.eclipse.smarthome.core.library.types.DecimalType.<init>(DecimalType.java:54) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:110) ~[?:?]
    at org.openhab.binding.coolmasternet.internal.ControllerHandler.refreshHVACUnits(ControllerHandler.java:100) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]

Oh dear, possibly another problem with the binding.

Yes that's another easy fix.

I thought that all null issues should have been resolved because I fixed each and every potential NullPointerException warning. Though this one is undetectable because classes such as DecimalType are missing the proper null annotations to automatically detect these issues. :neutral_face:

thank you! Your next trick should be to write a binding from scratch for a device you don't own and have never seen.

I'll then let you do the hands on testing. :stuck_out_tongue_winking_eye:

still working!

Unfortunately I'm getting more "scheduled runnable" exceptions:

2018-07-23 15:04:45.080 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception
java.lang.NumberFormatException: null
    at java.math.BigDecimal.<init>(BigDecimal.java:494) ~[?:?]
    at java.math.BigDecimal.<init>(BigDecimal.java:383) ~[?:?]
    at java.math.BigDecimal.<init>(BigDecimal.java:806) ~[?:?]
    at org.eclipse.smarthome.core.library.types.DecimalType.<init>(DecimalType.java:54) ~[?:?]
    at org.openhab.binding.coolmasternet.handler.HVACHandler.refresh(HVACHandler.java:115) ~[?:?]
    at org.openhab.binding.coolmasternet.internal.ControllerHandler.refreshHVACUnits(ControllerHandler.java:102) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
    at java.lang.Thread.run(Thread.java:748) [?:?]

It looks like it will sometimes try to create numbers out of strings that are not really numbers.

I've added some catch clauses (https://github.com/wborn/openhab2-addons/commit/81ca6390923866a30b14c51480dbaf26635db316) that log these strings so that should make it more fault tolerant and also show what it is trying to convert to numbers.

Can you test this org.openhab.binding.coolmasternet-2.4.0-SNAPSHOT.zip @Dan1001 ?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

LukasA83 picture LukasA83  路  5Comments

bennybubble picture bennybubble  路  4Comments

trailblazer2006 picture trailblazer2006  路  6Comments

UrsusS picture UrsusS  路  5Comments

doandzhi picture doandzhi  路  6Comments