ACK! apt-get upgrade from 2.0.0-1 to 2.1.0-1. BOOM, no sitemap found

Help! Since letting xenial’s typical apt-get upgrade take oh2.0.0 to oh2.1.0 it can no longer find my sitemap file!

This is a standard install. I only use files to setup the config, although I’ve re-enabled paperui and basicui since this started happening to test. paperui starts to work but all pages throw lots of 404 alerts at the bottom of the page. basicui works but can’t find any existing sitemaps. classicui (my normal) throws javax.servlet.ServletException: Sitemap ‘default’ could not be found

I’ve tried copying all the directories containing the files (items, sitemaps, rules, etc) from their original location of /etc/openhab2/ into /etc/openhab2/configuration/ and /usr/share/openhab2/conf/ to no avail. I’ve applied chown -R openhab:openhab to those locations, to no avail.

Some further info/tests:

I tried downgrading it back to 2.0.0 and now paperui works, however now classicui throws:openhab2 java.lang.NoSuchMethodError: org.eclipse.smarthome.ui.items.ItemUIRegistry.getChildren

There’s been no change of directory between versions so file locations should be left as they are.

in 2.1.0, what happens in your log files? This would probably point you to the problem. I suspect it might have something to do with the change:

Configuration files are now validated by the runtime upon being loaded. If they contain fatal errors, they will be completely rejected, otherwise only warnings might be logged, while the file is used. So if some of your files are not longer loaded, please check the log file for errors and correct those.

I noticed that - it caused me to fix a typo in my rules file. But I don’t think it gave that kind of warning for the sitemap file.

I’m just upgrading again now so I can check. Side note, while applying upgrade it does mention:

Configuration file ‘/var/lib/openhab2/etc/org.ops4j.pax.logging.cfg’
==> Modified (by you or by a script) since installation.

I perform the default action there (keep current version) as I’ve never changed that file. If it still fails I guess I can try downgrade/upgrade and let that change to the updated version.

Ah, yes found this:

2017-07-04 19:28:43.563 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'default.things’
2017-07-04 19:28:48.385 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model ‘default.sitemap’ has errors, therefore ignoring it: [10,39]: rule ruleGroup failed predicate: {getUnorderedGroupHelper().canLeave(grammarAccess.getGroupAccess().getUnorderedGroup_1())}?
[30,53]: rule ruleGroup failed predicate: {getUnorderedGroupHelper().canLeave(grammarAccess.getGroupAccess().getUnorderedGroup_1())}?

And of interest, here’s my sitemap file:
sitemap default label=“Home” icon=“house”
{
Frame label=“House” {
Text item=Date icon="clock-on"
Text item=VoiceCommand icon="microphone"
Text item=TestVal icon="zoom"
Switch item=Sleep label=“Sleep” icon="moon"
Switch item=Scene_Movie icon="cinema"
Switch item=Scene_Dinner icon="terrace"
Group label=“Controls” icon=“group” {
Slider item=Lounge_Light
Slider item=Master_Light
Slider item=Kids_Light
Slider item=Zone_Three_Light
Switch item=Lounge_TV
Switch item=Kids_Heater
Switch item=Outside_Light
Switch item=Shed_Light
Switch item=Master_Charger
Switch item=Kids_Charger
Switch item=Kids_Charger2
Switch item=LIFX_LoungeOn
Switch item=LIFX_KidsOn
Switch item=LIFX_Zone3On
Switch item=LIFX_ParentsOn
Switch item=Lounge_Air
Switch item=Lounge_Air_Boost
}
Group item=Shortcuts label=“Shortcuts” icon="flowpipe"
Group label=“Advanced” icon=“error” {
Switch item=Daylight icon="sun"
Switch item=Sleep icon="moon"
Group item=Weather label=“Weather” icon="climate"
Group item=Scenes label=“Scenes” icon="house"
Group item=Overrides label=“Automation” icon="cinema"
Group item=gPresent label=“Presence” icon="present"
Group item=Network label=“Infrastructure” icon="network"
Group item=Batteries label=“Batteries” icon=“energy”
}
}
}

OK! Looks like that new validating files thing was it all along. I’ve got to figure how to rejig my sitemap file for Groups not related to an item (and rules file for escape characters).

If you are using groups to separate your items this should work:

Thanks, although I just created a Group in the items file, and added it to all the items required. Then in the sitemap file I just added the item= bit to the Group line in question.