habPanel doesn't work after upgrade to 3.3.0

Hi all,
after upgrading my OH from 3.2 to 3.3 my habPanel doesn’t work anymore

Browser (Chrom) with open habPanel raises message: Lost connection! I’m trying again.

I see within browser that habPanels every 5sec triggers vendor.js script that rises following javaScript error

vendor.js:119 SyntaxError: Unexpected token { in JSON at position 188255
    at JSON.parse (<anonymous>)
    at Cc (vendor.js:16:380)
    at gc (vendor.js:93:289)
    at vendor.js:94:201
    at q (vendor.js:7:371)
    at md (vendor.js:94:183)
    at f (vendor.js:96:140)
    at vendor.js:132:434
    at m.$eval (vendor.js:147:69)
    at m.$digest (vendor.js:144:131)

OpenHab Logs this constantly:

2022-07-13 22:07:47.082 [ERROR] [rg.apache.cxf.jaxrs.utils.JAXRSUtils] - Problem with writing the data, class org.openhab.core.io.rest.Stream2JSONInputStream, ContentType: application/json
2022-07-13 22:07:47.082 [ERROR] [internal.JSONResponseExceptionMapper] - Unexpected exception occurred while processing REST request.
java.lang.IllegalArgumentException: Last segment must not be blank.
	at org.openhab.core.common.AbstractUID.<init>(AbstractUID.java:79) ~[?:?]
	at org.openhab.core.common.AbstractUID.<init>(AbstractUID.java:59) ~[?:?]
	at org.openhab.core.thing.UID.<init>(UID.java:57) ~[?:?]
	at org.openhab.core.thing.ThingUID.<init>(ThingUID.java:139) ~[?:?]
	at org.openhab.core.thing.ChannelUID.getThingUID(ChannelUID.java:150) ~[?:?]
	at org.openhab.core.thing.internal.ThingRegistryImpl.getChannel(ThingRegistryImpl.java:80) ~[?:?]
	at org.openhab.core.thing.internal.ChannelStateDescriptionProvider.getStateDescription(ChannelStateDescriptionProvider.java:97) ~[?:?]
	at org.openhab.core.thing.internal.ChannelStateDescriptionProvider.getStateDescriptionFragment(ChannelStateDescriptionProvider.java:86) ~[?:?]
	at org.openhab.core.internal.service.StateDescriptionServiceImpl.getMergedStateDescriptionFragments(StateDescriptionServiceImpl.java:71) ~[?:?]
	at org.openhab.core.internal.service.StateDescriptionServiceImpl.getStateDescription(StateDescriptionServiceImpl.java:63) ~[?:?]
	at org.openhab.core.items.GenericItem.getStateDescription(GenericItem.java:409) ~[?:?]
	at org.openhab.core.io.rest.core.item.EnrichedItemDTOMapper.considerTransformation(EnrichedItemDTOMapper.java:143) ~[?:?]
	at org.openhab.core.io.rest.core.item.EnrichedItemDTOMapper.map(EnrichedItemDTOMapper.java:81) ~[?:?]
	at org.openhab.core.io.rest.core.item.EnrichedItemDTOMapper.map(EnrichedItemDTOMapper.java:64) ~[?:?]
	at org.openhab.core.io.rest.core.internal.item.ItemResource.lambda$2(ItemResource.java:219) ~[?:?]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
	at java.util.HashMap$KeySpliterator.tryAdvance(HashMap.java:1642) ~[?:?]
	at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294) ~[?:?]
	at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206) ~[?:?]
	at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169) ~[?:?]
	at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300) ~[?:?]
	at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681) ~[?:?]
	at org.openhab.core.io.rest.Stream2JSONInputStream.fillBuffer(Stream2JSONInputStream.java:91) ~[?:?]
	at org.openhab.core.io.rest.Stream2JSONInputStream.read(Stream2JSONInputStream.java:67) ~[?:?]
	at java.io.InputStream.read(InputStream.java:280) ~[?:?]
	at java.io.InputStream.transferTo(InputStream.java:704) ~[?:?]

Any hint, advice

thanks!

Looks like you have a Thing UID that’s not correctly formatted. No idea how or why it happened, but I think that’s what the exception is complaining about.

1 Like

Thanks.
I’ve disabled all the things and the problem still persisted.
So I continue looking for a problem and actually, I found an issue:

the JSON returning items for HABPanel via OH REST service was crashed.
So I started investigating all items and found one item that had a channel wrongly defined and although in OH3.2 it didn’t have an impact on the generated JSON it apparently has an impact in OH3.3 release

For your reference:
At the end of the JSON returned by http://openhab-url/rest/items
following below is added making it wrongly formatted.

{\"error\":{\"message\":\"Last segment must not be blank.\",\"http-code\":500,\"exception\":{\"class\":\"java.lang.IllegalArgumentException\",\"message\":\"Last segment must not be blank.\",\"localized-message\":\"Last segment must not be blank.\"}}}

It’s added only when one of the items has a wrongly defined channel

Adding item causing problem:

Switch light_outside_leds_switch_connected { channel="mqtt:topic:myProductionMQTTBroker:LightAroundHouseConnected" }

same correct item

Switch light_outside_leds_switch_connected { channel="mqtt:topic:myProductionMQTTBroker:LightAroundHouse:Connected" }

just missing a colon