Double ChartServlet in http:list. Charts error

Hi,
i have an issue with the charts on basic ui. Charts are not renderer and in the log i see a lot of errors like
Error during chart servlet startup
org.osgi.service.http.NamespaceException: alias: ‘/chart’ is already in use in this or another context

If i run http:list on karaf console there are two ChartServlet on the context /chart/*. One in state Deployed and one in state Failed.
Can this be related to the missing rendering? Any guess?
Thank you all

openhab> http:list
ID  │ Servlet                │ Servlet-Name    │ State       │ Alias         │ Url
────┼────────────────────────┼─────────────────┼─────────────┼───────────────┼──────────────────
208 │ CmdServlet             │ ServletModel-30 │ Deployed    │ /basicui/CMD  │ [/basicui/CMD/*]
181 │ DashboardServlet       │ ServletModel-20 │ Deployed    │ /start/index  │ [/start/index/*]
208 │ ResourceServlet        │ /basicui:web    │ Deployed    │ /basicui      │ [/basicui/*]
147 │ ChartServlet           │ ServletModel-11 │ Failed      │ /chart        │ [/chart/*]
181 │ ResourceServlet        │ /start:web      │ Deployed    │ /start        │ [/start/*]
147 │ AsyncProxyServlet      │ ServletModel-12 │ Deployed    │ /proxy        │ [/proxy/*]
147 │ ChartServlet           │ ServletModel-9  │ Deployed    │ /chart        │ [/chart/*]
208 │ WebAppServlet          │ ServletModel-24 │ Deployed    │ /basicui/app  │ [/basicui/app/*]
148 │ IconServlet            │ ServletModel-14 │ Deployed    │ /icon         │ [/icon/*]
177 │ IconForwarder          │ ServletModel-36 │ Deployed    │ /images       │ [/images/*]
173 │ AsyncServlet           │ ServletModel-17 │ Deployed    │ /upnpcallback │ [/upnpcallback/*]
102 │ AudioServlet           │ ServletModel-2  │ Undeployed  │ /audio        │ [/audio/*]
220 │ ResourceServlet        │ /habpanel:web   │ Deployed    │ /habpanel     │ [/habpanel/*]
15  │ ServletContainerBridge │ ServletModel-6  │ Deployed    │ /rest         │ [/rest/*]
102 │ AudioServlet           │ ServletModel-4  │ Deployed    │ /audio        │ [/audio/*]

Might be related to Chart not working - Exception.
I just tried the latest snapshot and all looks good:

ID  │ Servlet                │ Servlet-Name    │ State       │ Alias         │ Url
────┼────────────────────────┼─────────────────┼─────────────┼───────────────┼──────────────────
214 │ HueEmulationServlet    │ ServletModel-41 │ Deployed    │ /api          │ [/api/*]
139 │ AsyncProxyServlet      │ ServletModel-21 │ Deployed    │ /proxy        │ [/proxy/*]
207 │ ResourceServlet        │ /basicui:web    │ Deployed    │ /basicui      │ [/basicui/*]
172 │ DashboardServlet       │ ServletModel-11 │ Deployed    │ /start/index  │ [/start/index/*]
172 │ ResourceServlet        │ /start:web      │ Deployed    │ /start        │ [/start/*]
216 │ RRD4jChartServlet      │ ServletModel-44 │ Deployed    │ /rrdchart.png │ [/rrdchart.png/*]
140 │ IconServlet            │ ServletModel-23 │ Deployed    │ /icon         │ [/icon/*]
168 │ IconForwarder          │ ServletModel-47 │ Deployed    │ /images       │ [/images/*]
95  │ AudioServlet           │ ServletModel-15 │ Undeployed  │ /audio        │ [/audio/*]
207 │ CmdServlet             │ ServletModel-26 │ Deployed    │ /basicui/CMD  │ [/basicui/CMD/*]
209 │ AsyncServlet           │ ServletModel-38 │ Deployed    │ /upnpcallback │ [/upnpcallback/*]
95  │ AudioServlet           │ ServletModel-17 │ Deployed    │ /audio        │ [/audio/*]
207 │ WebAppServlet          │ ServletModel-29 │ Deployed    │ /basicui/app  │ [/basicui/app/*]
139 │ ChartServlet           │ ServletModel-19 │ Deployed    │ /chart        │ [/chart/*]
218 │ ResourceServlet        │ /habpanel:web   │ Deployed    │ /habpanel     │ [/habpanel/*]
215 │ ResourceServlet        │ /doc:swagger    │ Deployed    │ /doc          │ [/doc/*]
15  │ ServletContainerBridge │ ServletModel-5  │ Deployed    │ /rest         │ [/rest/*]
208 │ ResourceServlet        │ /paperui:web    │ Deployed    │ /paperui      │ [/paperui/*]

… while I see that there is a similar issue with the AudioServlet…

Does this happen right after startup? Could you post some logs around the NamespaceException?

I have created https://github.com/eclipse/smarthome/pull/6161, which improves the code a bit - I do not know whether it solves the problem, but at least there is a slight chance for it…

Yes this is happening right after startup, even before opening a basic ui session. It happens every time a basic ui session needs to render a chart.
This is my log

    2018-09-06 13:40:31.360 [WARN ] [eclipse.jetty.servlet.ServletHandler] - javax.servlet.ServletException: Could not get chart provider.
	at org.eclipse.smarthome.ui.internal.chart.ChartServlet.doGet(ChartServlet.java:282) [147:org.eclipse.smarthome.ui:0.10.0.oh230]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [31:javax.servlet-api:3.1.0]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [31:javax.servlet-api:3.1.0]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [183:org.ops4j.pax.web.pax-web-jetty:6.0.9]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [82:org.eclipse.jetty.security:9.3.21.v20170918]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284) [183:org.ops4j.pax.web.pax-web-jetty:6.0.9]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [183:org.ops4j.pax.web.pax-web-jetty:6.0.9]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.Server.handle(Server.java:534) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [76:org.eclipse.jetty.io:9.3.21.v20170918]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [76:org.eclipse.jetty.io:9.3.21.v20170918]
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [76:org.eclipse.jetty.io:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2018-09-06 13:40:31.366 [WARN ] [eclipse.jetty.servlet.ServletHandler] - 
javax.servlet.ServletException: Could not get chart provider.
	at org.eclipse.smarthome.ui.internal.chart.ChartServlet.doGet(ChartServlet.java:282) [147:org.eclipse.smarthome.ui:0.10.0.oh230]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [31:javax.servlet-api:3.1.0]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [31:javax.servlet-api:3.1.0]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [183:org.ops4j.pax.web.pax-web-jetty:6.0.9]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [82:org.eclipse.jetty.security:9.3.21.v20170918]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284) [183:org.ops4j.pax.web.pax-web-jetty:6.0.9]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [183:org.ops4j.pax.web.pax-web-jetty:6.0.9]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.Server.handle(Server.java:534) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [84:org.eclipse.jetty.server:9.3.21.v20170918]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [76:org.eclipse.jetty.io:9.3.21.v20170918]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [76:org.eclipse.jetty.io:9.3.21.v20170918]
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [76:org.eclipse.jetty.io:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [87:org.eclipse.jetty.util:9.3.21.v20170918]
	at java.lang.Thread.run(Thread.java:748) [?:?]

Thanks, so this is indeed the same exception as in Chart not working - Exception.

Yes and i suspect that it’s all related to the second ChartServlet that cannot be started.
I use postgres jdbc persistence. I don’t use paper ui, everything is defined in files and everything works well except for charts.
Sorry but i can’t figure out much more for now.

You do not have any more detailed log/exception about that?

I’ve done a clean log file that starts from the start of openhab2, maybe you can see something that I don’t see.
I pasted it on pastebin https://pastebin.com/NP9aWRa6

Thanks, this is more helpful.
I hope you’ve seen the exception

java.lang.NumberFormatException: For input string: "1280.0"

this shows that you seem to have an invalid configuration for your servlet (it must be an integer, not a float) - did you set it in a cfg or through Paper UI?

I have pushed more fixes and improvements to https://github.com/eclipse/smarthome/pull/6161 and I am quite confident that it should solve your issue.

1 Like