Items stop loading from file

I have the latest snapshot of OH2 (from last night) running on an Ubuntu 14.04 VM, with the Oracle 8 java sdk. I’ve been repeatedly encountering an issue where both my items folder and my rules folder seems to stop being monitored, to the point that any items defined in a .items file is ignored. The only way I’ve found to get things back to normal (for a period of time) is to start OH2 with an empty items folder, and then move my items file back in. All the items are loaded back correctly and everything seems to work for a while.

I have been getting this issue with previous nightlys as well.

From the logs, I think the issue may be ConcurrentModificationException:

21:54:34.477 [ERROR] [org.apache.felix.configadmin        ] - [org.osgi.service.cm.ManagedService, id=329, bundle=110/mvn:org.eclipse.smarthome.model/org.eclipse.smarthome.model.core/0.8.0-SNAPSHOT]: Unexpected problem updating configuration org.eclipse.smarthome.folder
java.util.ConcurrentModificationException
        at org.eclipse.emf.common.util.AbstractEList$EIterator.checkModCount(AbstractEList.java:758)[58:org.eclipse.emf.common:2.10.1.v20150123-0348]
        at org.eclipse.emf.common.util.AbstractEList$EIterator.doNext(AbstractEList.java:706)[58:org.eclipse.emf.common:2.10.1.v20150123-0348]
        at org.eclipse.emf.common.util.AbstractEList$EIterator.next(AbstractEList.java:692)[58:org.eclipse.emf.common:2.10.1.v20150123-0348]
        at org.eclipse.xtext.resource.SynchronizedXtextResourceSet$1$SynchronizedEIterator.next(SynchronizedXtextResourceSet.java:171)[128:org.eclipse.xtext:2.6.2.v201407030533]
        at org.eclipse.xtext.resource.SynchronizedXtextResourceSet$1$SynchronizedEIterator.next(SynchronizedXtextResourceSet.java:1)[128:org.eclipse.xtext:2.6.2.v201407030533]
        at com.google.common.collect.Iterators$7.computeNext(Iterators.java:644)[18:com.google.guava:10.0.1.v201203051515]
        at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:141)[18:com.google.guava:10.0.1.v201203051515]
        at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:136)[18:com.google.guava:10.0.1.v201203051515]
        at com.google.common.collect.Iterators$8.hasNext(Iterators.java:777)[18:com.google.guava:10.0.1.v201203051515]
        at com.google.common.collect.Lists.newArrayList(Lists.java:138)[18:com.google.guava:10.0.1.v201203051515]
        at com.google.common.collect.Lists.newArrayList(Lists.java:119)[18:com.google.guava:10.0.1.v201203051515]
        at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.getAllModelNamesOfType(ModelRepositoryImpl.java:156)[110:org.eclipse.smarthome.model.core:0.8.0.201603141848]
        at org.eclipse.smarthome.model.item.internal.GenericItemProvider.getAll(GenericItemProvider.java:123)[111:org.eclipse.smarthome.model.item:0.8.0.201603141848]
        at org.eclipse.smarthome.core.internal.items.ItemRegistryImpl.allItemsChanged(ItemRegistryImpl.java:87)[92:org.eclipse.smarthome.core:0.8.0.201603141848]
        at org.eclipse.smarthome.model.item.internal.GenericItemProvider.modelChanged(GenericItemProvider.java:407)[111:org.eclipse.smarthome.model.item:0.8.0.201603141848]
        at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:200)[110:org.eclipse.smarthome.model.core:0.8.0.201603141848]
        at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:97)[110:org.eclipse.smarthome.model.core:0.8.0.201603141848]
        at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:240)[110:org.eclipse.smarthome.model.core:0.8.0.201603141848]
        at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.notifyUpdateToModelRepo(FolderObserver.java:169)[110:org.eclipse.smarthome.model.core:0.8.0.201603141848]
        at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.updated(FolderObserver.java:150)[110:org.eclipse.smarthome.model.core:0.8.0.201603141848]
        at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)[7:org.apache.felix.configadmin:1.8.8]
        at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)[7:org.apache.felix.configadmin:1.8.8]
        at org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)[7:org.apache.felix.configadmin:1.8.8]
        at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)[7:org.apache.felix.configadmin:1.8.8]
        at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)[7:org.apache.felix.configadmin:1.8.8]
        at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)[7:org.apache.felix.configadmin:1.8.8]
        at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)[7:org.apache.felix.configadmin:1.8.8]
        at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]

@Kai There seems to have been a report of a bug relating to this last November https://bugs.eclipse.org/bugs/show_bug.cgi?id=479215, which was closed. Is this something that is still left to be resolved or is there any other work around?

Thanks.

I also have this randomly.
Also for other conf stuff.
Eg rules that I change don’t get updated when I modify and save the file.

No, not yet solved, but also not easily reproducible. I am planning to upgrade Xtext to a more recent version soon, so maybe this might make a difference…

I am not sure if this is coincidental, but frequent saves to my items files or rules files seems to trigger it. Over the last few days, whilst migrating items and rules over from 1.8, I’ve had this happen every few hours.