Out of Memory Errors on Startup

I clearly did something in my configuration yesterday that is creating a Java out of memory error (see below for the console output) and crashing my OH on startup. Here is a dump file - https://drive.google.com/open?id=0B77VHtwPft8eSXI4X1VoSFNKdkE

I’m opening someone can help me figure out what I messed up. I’ve tried:

  • uninstalling / reinstalling OH2 with the same configs.
  • removing the new rules I made yesterday afternoon
  • removing my sitemap file that I made a bunch of changes to
  • reversing the changes I made to my .items file

The only thing I haven’t done is removed the new items / things I added yesterday since I can’t keep the system up and running long enough to do so. I guess I could try to edit the jsondb files

 Exception in thread "Timer-3" java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Arrays.java:3332)
        at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
        at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
        at java.lang.StringBuffer.append(StringBuffer.java:270)
        at java.io.StringWriter.write(StringWriter.java:112)
        at com.google.gson.stream.JsonWriter.string(JsonWriter.java:559)
        at com.google.gson.stream.JsonWriter.writeDeferredName(JsonWriter.java:402)
        at com.google.gson.stream.JsonWriter.beginArray(JsonWriter.java:287)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:94)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:60)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
        at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
        at com.google.gson.Gson.toJson(Gson.java:600)
        at com.google.gson.Gson.toJson(Gson.java:579)
        at com.google.gson.Gson.toJson(Gson.java:534)
        at com.google.gson.Gson.toJson(Gson.java:514)
        at org.eclipse.smarthome.storage.json.JsonStorage.commitDatabase(JsonStorage.java:259)
        at org.eclipse.smarthome.storage.json.JsonStorage$CommitTimerTask.run(JsonStorage.java:282)
        at java.util.TimerThread.mainLoop(Timer.java:555)

So I purged my installation, reinstalled and setup with all the bindings and Zwave stick. I then copied over my jsondb and conf files. Back to a system that runs but can’t communicate with any Zwave devices.

@chris It appears to be something not behaving with Zwave.

Seeing the following errors in the log file (haven’t ran a debug yet):

2017-01-01 17:44:04.169 [WARN ] [.core.thing.binding.BaseThingHandler] - Error while applying configuration changes: 'IllegalStateException: Timer already cancelled.' - reverting configuration changes on thing 'zwave:device:158c5cdb4d0:node35'.
2017-01-01 17:44:04.323 [ERROR] [ome.core.thing.internal.ThingManager] - Exception occured during notification about bridge status change on thing 'zwave:device:158c5cdb4d0:node35': Timer already cancelled.
java.lang.IllegalStateException: Timer already cancelled.
	at java.util.Timer.sched(Timer.java:397)[:1.8.0_111]
	at java.util.Timer.schedule(Timer.java:193)[:1.8.0_111]
	at org.eclipse.smarthome.storage.json.JsonStorage.deferredCommit(JsonStorage.java:334)[133:org.eclipse.smarthome.storage.json:0.9.0.201612221226]
	at org.eclipse.smarthome.storage.json.JsonStorage.put(JsonStorage.java:123)[133:org.eclipse.smarthome.storage.json:0.9.0.201612221226]
	at org.eclipse.smarthome.core.common.registry.AbstractManagedProvider.update(AbstractManagedProvider.java:132)[96:org.eclipse.smarthome.core:0.9.0.201612221226]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1$1.run(ThingManager.java:225)[103:org.eclipse.smarthome.core.thing:0.9.0.201612221226]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1$1.run(ThingManager.java:1)[103:org.eclipse.smarthome.core.thing:0.9.0.201612221226]
	at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_111]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1.thingUpdated(ThingManager.java:213)[103:org.eclipse.smarthome.core.thing:0.9.0.201612221226]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateConfiguration(BaseThingHandler.java:478)[103:org.eclipse.smarthome.core.thing:0.9.0.201612221226]
	at org.eclipse.smarthome.core.thing.binding.ConfigStatusThingHandler.updateConfiguration(ConfigStatusThingHandler.java:65)[103:org.eclipse.smarthome.core.thing:0.9.0.201612221226]
	at org.openhab.binding.zwave.handler.ZWaveThingHandler.updateNodeProperties(ZWaveThingHandler.java:1401)[207:org.openhab.binding.zwave:2.0.0.201701011144]
	at org.openhab.binding.zwave.handler.ZWaveThingHandler.bridgeStatusChanged(ZWaveThingHandler.java:454)[207:org.openhab.binding.zwave:2.0.0.201701011144]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$12.run(ThingManager.java:851)[103:org.eclipse.smarthome.core.thing:0.9.0.201612221226]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_111]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_111]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_111]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_111]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_111]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_111]
	at java.lang.Thread.run(Thread.java:745)[:1.8.0_111]

Why do you say that? The error below appears to be in JsonDB doesn’t it? Of course, the next question is if it’s the cause, of effect of something else…

I was saying it because the timer error was with the Zwave communication and even when I change states in the backend it wasn’t reflecting in the devices (i.e. turn on a light through Habmin and the actual light stayed off).

I’m too many decades away from programming to be able to tell from that error message that it was the json database, now I see the lines you were looking at. I suspected and actually started to rebuild the things db from scratch and then was going to try to reuse the items db.

Any ideas on what might have corrupted the database? I had tried rolling back to an old one at one point but that’s when I couldn’t even get the system to start.

Thanks as always.

I was just looking at the top of the stack trace - this will give the best idea of where the problem happened. It doesn’t however mean that this is the cause of the problem…

I don’t think the database is corrupted - at least I wouldn’t say that from this error. From the error, it looks like there’s some issues with timers - no idea why, and it’s quite possibly not related to the underlying root cause. It doesn’t mean the database is corrupt and it should be real easy to check - just open the json file, and load it into jsonlint - it will tell you if there are any errors.

It came back valid. Oh well, almost done rebuilding. Did find a device missing from the database that I thought I remembered seeing as a hangup in the log files (though don’t fully trust my memory).

So that is a timer error related to rule timers and not an internal timer? I wasn’t quit sure. The only change I made to timers was switching off of Joda timers to using the new event channels in Astro. I’ll bring those back slowly to see if I can narrow it down.

Thanks,

No - it’s a timer internal to the json database. It keeps a timer to prevent rapid writes to disk (ie if there are writes every xx milliseconds, then it will only write to disk periodically).

The question though is if this is really the problem, or just an effect of other issues… It’s hard to say from the information here, so I’d probably keep an eye on it, and if it happens again then we should look deeper at what’s going on…

Thanks, will do.

@chris These errors keep coming back on certain upgrades. I’ve tried twice to upgrade to the 0305 build and had my system locked down by these errors. I’ve tried changing the # of backups, write delays but have yet to be able to figure out what’s causing it. I did roll back to the 0215 build yesterday, then the system settled down and started working again. Tried the upgrade last night and back into error mode. Here’s a short snapshot of the log files to see if you have any ideas of things I could do to help troubleshoot (happy to run a debug log if you think it will give you the info to help figure it out).

Edit: Looks like I actually installed the 0308 version yesterday, I know the night before was the 0305 version.

2017-03-09 06:31:06.324 [ERROR] [ome.core.thing.internal.ThingManager] - Exception occured during notification about bridge status change on thing 'zwave:device:15aac39433e:node15': Timer already cancelled.
java.lang.IllegalStateException: Timer already cancelled.
	at java.util.Timer.sched(Timer.java:397)[:1.8.0_121]
	at java.util.Timer.schedule(Timer.java:193)[:1.8.0_121]
	at org.eclipse.smarthome.storage.json.JsonStorage.deferredCommit(JsonStorage.java:334)[136:org.eclipse.smarthome.storage.json:0.9.0.201703021530]
	at org.eclipse.smarthome.storage.json.JsonStorage.put(JsonStorage.java:123)[136:org.eclipse.smarthome.storage.json:0.9.0.201703021530]
	at org.eclipse.smarthome.core.common.registry.AbstractManagedProvider.update(AbstractManagedProvider.java:132)[99:org.eclipse.smarthome.core:0.9.0.201703021530]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1$1.run(ThingManager.java:217)[106:org.eclipse.smarthome.core.thing:0.9.0.201703021530]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1$1.run(ThingManager.java:1)[106:org.eclipse.smarthome.core.thing:0.9.0.201703021530]
	at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_121]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1.thingUpdated(ThingManager.java:205)[106:org.eclipse.smarthome.core.thing:0.9.0.201703021530]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateConfiguration(BaseThingHandler.java:478)[106:org.eclipse.smarthome.core.thing:0.9.0.201703021530]
	at org.eclipse.smarthome.core.thing.binding.ConfigStatusThingHandler.updateConfiguration(ConfigStatusThingHandler.java:65)[106:org.eclipse.smarthome.core.thing:0.9.0.201703021530]
	at org.openhab.binding.zwave.handler.ZWaveThingHandler.updateNodeProperties(ZWaveThingHandler.java:1409)[238:org.openhab.binding.zwave:2.1.0.201703051912]
	at org.openhab.binding.zwave.handler.ZWaveThingHandler.bridgeStatusChanged(ZWaveThingHandler.java:457)[238:org.openhab.binding.zwave:2.1.0.201703051912]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$12.run(ThingManager.java:844)[106:org.eclipse.smarthome.core.thing:0.9.0.201703021530]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_121]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_121]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
	at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
2017-03-09 06:31:10.953 [WARN ] [.core.thing.binding.BaseThingHandler] - Error while applying configuration changes: 'IllegalStateException: Timer already cancelled.' - reverting configuration changes on thing 'zwave:device:15aac39433e:node14'.
2017-03-09 06:31:12.962 [WARN ] [.core.thing.binding.BaseThingHandler] - Error while applying configuration changes: 'ConcurrentModificationException: null' - reverting configuration changes on thing 'zwave:device:15aac39433e:node10'.

@Chris Not sure if this is the issue or not, but I have noticed that the org.eclipse.smarthome.core.thing.Thing.json seems to be getting bigger over time.

For example (granted I changed the variable associated with binding version) but I just installed the new test binding (figured if I had to reset all my Things I might as well test out the new binding). After a couple of days the Thing.json file is 409 KB and 17,301 lines long. If I look at my backups, the latest backup I have prior to the errors was made on 3/05 and the Thing.json was 9,182 KB and 109,628 lines long. The only other backup I still have is from 2/07 and the Thing.json was 6,923 KB and 82,106 lines long. The system is basically the same at all three snapshots.

Could it be that the files not getting cleaned up over time and just gets to big? I’d be happy to share the different versions of the file with you if you want to compare them.

Here are some screenshots of collapsed versions of the three (the 3/11 was for the new binding and I had to remove/reinstall some sensors, so hence the Node# changes. But look at Node 14 for reference where it went from 408 lines in 3/11, to 7,348 lines in the 2/7 and almost 12,000 lines in the 3/05 version.

Edit: What appears to be the difference is the number of ZWaveAssociationGroup entries

3/11:

2/7:

3/5:

The tests show that the remove method is working ok - the database itself doesn’t have any sort of clean-up - it’s not possible as far as I can tell anyway. How would it know what to delete? This has to be down to the framework to remove anything that isn’t needed.

The interface, and most of the implementation, is the same for other databases (eg mapdb that was used before jsondb, so again, this sort of thing needs to be resolved in the framework. If you are adding new items, then you should also remove old ones and this should remove them from the database (I expect).

Sorry - not sure what to suggest really - I do agree that what you’re seeing doesn’t look right/good, but I think the issue must be in the framework, or how you’re using it somehow… (open to suggestions though :wink: ).

I’m operating way above my paygrade. The few times I got it to start working again (w/o resorting to just reinstalling all the Things I unfortunately was usually trying multiple things and didn’t document my changes…) Assuming it happens again, I’ll see if I can trim down the file size by deleting the group associations (not sure how to do that easily…) and see if that impacts it.

Edit: @Kai Any ideas on this and is there any troubleshooting I can do next time I run into this to help isolate the issue?

Validate your JSON using JSON formatter

I did at the time and there weren’t any issues in the format, there were just too many overall entries. After clearing it out I didn’t have any more issues. I’ve since moved all my items definitions to text files to support my mqtt setup.

Did you ever figure out how to address this?

I’m having the same problem. Running the latest stable build 2.1.

java.lang.IllegalStateException: Timer already cancelled.
	at java.util.Timer.sched(Timer.java:397)[:1.8.0_152]
	at java.util.Timer.schedule(Timer.java:193)[:1.8.0_152]
	at org.eclipse.smarthome.storage.json.JsonStorage.deferredCommit(JsonStorage.java:340)[138:org.eclipse.smarthome.storage.json:0.9.0.b5]
	at org.eclipse.smarthome.storage.json.JsonStorage.put(JsonStorage.java:127)[138:org.eclipse.smarthome.storage.json:0.9.0.b5]
	at org.eclipse.smarthome.core.common.registry.AbstractManagedProvider.update(AbstractManagedProvider.java:131)[101:org.eclipse.smarthome.core:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1$1.run(ThingManager.java:227)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1$1.run(ThingManager.java:1)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_152]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1.thingUpdated(ThingManager.java:215)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateConfiguration(BaseThingHandler.java:478)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.binding.ConfigStatusThingHandler.updateConfiguration(ConfigStatusThingHandler.java:65)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.openhab.binding.zwave.handler.ZWaveThingHandler.ZWaveIncomingEvent(ZWaveThingHandler.java:1071)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.notifyEventListeners(ZWaveController.java:567)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.commandclass.ZWavePowerLevelCommandClass.handleApplicationCommandRequest(ZWavePowerLevelCommandClass.java:92)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.serialmessage.ApplicationCommandMessageClass.handleRequest(ApplicationCommandMessageClass.java:119)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingRequestMessage(ZWaveController.java:248)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingMessage(ZWaveController.java:214)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.access$7(ZWaveController.java:208)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController$ZWaveInputThread.run(ZWaveController.java:1324)[217:org.openhab.binding.zwave:2.1.0]
2017-12-06 21:55:30.052 [WARN ] [.core.thing.binding.BaseThingHandler] - Error while applying configuration changes: 'IllegalStateException: Timer already cancelled.' - reverting configuration changes on thing 'zwave:device:de0bde91:node68'.
2017-12-06 21:55:30.058 [ERROR] [ve.internal.protocol.ZWaveController] - Exception during ZWave thread: Input 2. {}
java.lang.IllegalStateException: Timer already cancelled.
	at java.util.Timer.sched(Timer.java:397)[:1.8.0_152]
	at java.util.Timer.schedule(Timer.java:193)[:1.8.0_152]
	at org.eclipse.smarthome.storage.json.JsonStorage.deferredCommit(JsonStorage.java:340)[138:org.eclipse.smarthome.storage.json:0.9.0.b5]
	at org.eclipse.smarthome.storage.json.JsonStorage.put(JsonStorage.java:127)[138:org.eclipse.smarthome.storage.json:0.9.0.b5]
	at org.eclipse.smarthome.core.common.registry.AbstractManagedProvider.update(AbstractManagedProvider.java:131)[101:org.eclipse.smarthome.core:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1$1.run(ThingManager.java:227)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1$1.run(ThingManager.java:1)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_152]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1.thingUpdated(ThingManager.java:215)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateConfiguration(BaseThingHandler.java:478)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.binding.ConfigStatusThingHandler.updateConfiguration(ConfigStatusThingHandler.java:65)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.openhab.binding.zwave.handler.ZWaveThingHandler.ZWaveIncomingEvent(ZWaveThingHandler.java:1071)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.notifyEventListeners(ZWaveController.java:567)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.commandclass.ZWavePowerLevelCommandClass.handleApplicationCommandRequest(ZWavePowerLevelCommandClass.java:92)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.serialmessage.ApplicationCommandMessageClass.handleRequest(ApplicationCommandMessageClass.java:119)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingRequestMessage(ZWaveController.java:248)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingMessage(ZWaveController.java:214)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.access$7(ZWaveController.java:208)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController$ZWaveInputThread.run(ZWaveController.java:1324)[217:org.openhab.binding.zwave:2.1.0]
2017-12-06 21:55:34.668 [WARN ] [.core.thing.binding.BaseThingHandler] - Error while applying configuration changes: 'IllegalStateException: Timer already cancelled.' - reverting configuration changes on thing 'zwave:device:de0bde91:node68'.
2017-12-06 21:55:37.015 [ERROR] [ve.internal.protocol.ZWaveController] - Exception during ZWave thread: Input 2. {}
java.lang.IllegalStateException: Timer already cancelled.
	at java.util.Timer.sched(Timer.java:397)[:1.8.0_152]
	at java.util.Timer.schedule(Timer.java:193)[:1.8.0_152]
	at org.eclipse.smarthome.storage.json.JsonStorage.deferredCommit(JsonStorage.java:340)[138:org.eclipse.smarthome.storage.json:0.9.0.b5]
	at org.eclipse.smarthome.storage.json.JsonStorage.put(JsonStorage.java:127)[138:org.eclipse.smarthome.storage.json:0.9.0.b5]
	at org.eclipse.smarthome.core.common.registry.AbstractManagedProvider.update(AbstractManagedProvider.java:131)[101:org.eclipse.smarthome.core:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1$1.run(ThingManager.java:227)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1$1.run(ThingManager.java:1)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_152]
	at org.eclipse.smarthome.core.thing.internal.ThingManager$1.thingUpdated(ThingManager.java:215)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.updateConfiguration(BaseThingHandler.java:478)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.eclipse.smarthome.core.thing.binding.ConfigStatusThingHandler.updateConfiguration(ConfigStatusThingHandler.java:65)[108:org.eclipse.smarthome.core.thing:0.9.0.b5]
	at org.openhab.binding.zwave.handler.ZWaveThingHandler.ZWaveIncomingEvent(ZWaveThingHandler.java:1071)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.notifyEventListeners(ZWaveController.java:567)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.commandclass.ZWavePowerLevelCommandClass.handleApplicationCommandRequest(ZWavePowerLevelCommandClass.java:92)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.serialmessage.ApplicationCommandMessageClass.handleRequest(ApplicationCommandMessageClass.java:119)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingRequestMessage(ZWaveController.java:248)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.handleIncomingMessage(ZWaveController.java:214)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController.access$7(ZWaveController.java:208)[217:org.openhab.binding.zwave:2.1.0]
	at org.openhab.binding.zwave.internal.protocol.ZWaveController$ZWaveInputThread.run(ZWaveController.java:1324)[217:org.openhab.binding.zwave:2.1.0]

I ended up clearing out the org.eclipse.smarthome.core.thing.Thing.json file which had gotten very big but I can’t remember if I just deleted it and let it rebuild (which may have required reinstalling all my Things) or manually cleaned out excess entries. I know it goes without saying but definitely make a backup first and see if you can just erase the file contents. That’s about all I remember from the problem and I never saw it repeat…

Deleting the json file (and all of the backups) worked. Luckily all of my channels are configured manually with in my items file. I can’t imaging having to do all of this config again through habmin/paperui. This is actually the second time this exact problem happened to me. The last time I ended up starting from a fresh install.

At this point the zwave items are still slow to respond. They were much faster when first configured. So something is still awry.

Overall, I’m not sure if this is a bug or just something with my system, but I don’t have anything unusual setup other than just the shear number of zwave “things.”

Glad you got it to work. I found it took a little while for my Zwave to settle down. I went to a manual items file as well (mainly for mqtt control) but also definitely got tired of rebuilding my system from scratch for all my items.