{"action":"created","issue":{"url":"https://api.github.com/repos/hawtio/hawtio/issues/1900","labels_url":"https://api.github.com/repos/hawtio/hawtio/issues/1900/labels{/name}","comments_url":"https://api.github.com/repos/hawtio/hawtio/issues/1900/comments","events_url":"https://api.github.com/repos/hawtio/hawtio/issues/1900/events","html_url":"https://github.com/hawtio/hawtio/issues/1900","id":57012922,"number":1900,"title":"exception/ crash for camel routes tab chart and on executing operations","user":{"login":"dermoritz","id":1814196,"avatar_url":"https://avatars.githubusercontent.com/u/1814196?v=3","gravatar_id":"","url":"https://api.github.com/users/dermoritz","html_url":"https://github.com/dermoritz","followers_url":"https://api.github.com/users/dermoritz/followers","following_url":"https://api.github.com/users/dermoritz/following{/other_user}","gists_url":"https://api.github.com/users/dermoritz/gists{/gist_id}","starred_url":"https://api.github.com/users/dermoritz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dermoritz/subscriptions","organizations_url":"https://api.github.com/users/dermoritz/orgs","repos_url":"https://api.github.com/users/dermoritz/repos","events_url":"https://api.github.com/users/dermoritz/events{/privacy}","received_events_url":"https://api.github.com/users/dermoritz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-02-09T10:30:24Z","updated_at":"2015-02-09T13:16:37Z","closed_at":null,"body":"i just tried hawt.io. so far i see my camle app and all routes. Many of the configured routes have generated names (id) that contain an endpoint url.\r\nIf i press the chart tab on such a route hawt.io crashes (i use hawtio-app-1.4.45.jar) and console shows:\r\n\r\n```\r\n[qtp1503676955-15] WARN org.eclipse.jetty.servlet.ServletHandler - /hawtio/proxy/http://127.0.0.1:61619/jolokia//list/o\r\ng.apache.camel/context=camel-1,type=routes,name=%22bufferToRtdm%20file:!/!/C:%255CUsers%255Cmoritz%255CAppData%255CLoca\r\n%255CTemp%255CadapterTest%255Cfive%22\r\njava.net.URISyntaxException: Illegal character in path at index 87: http://127.0.0.1:61619/jolokia//list/org.apache.cam\r\nl/context=camel-1,type=routes,name=\"bufferToRtdm file:!/!/C:%5CUsers%5Cmoritz%5CAppData%5CLocal%5CTemp%5CadapterTest%5C\r\nive\"?maxDepth=7&maxCollectionSize=500&ignoreErrors=true&canonicalNaming=false\r\n        at java.net.URI$Parser.fail(Unknown Source)\r\n        at java.net.URI$Parser.checkChars(Unknown Source)\r\n        at java.net.URI$Parser.parseHierarchical(Unknown Source)\r\n        at java.net.URI$Parser.parse(Unknown Source)\r\n        at java.net.URI.<init>(Unknown Source)\r\n        at io.hawt.web.ProxyServlet.service(ProxyServlet.java:174)\r\n        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)\r\n        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:598)\r\n        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1367)\r\n        at io.hawt.web.CORSFilter.doFilter(CORSFilter.java:42)\r\n        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)\r\n        at io.hawt.web.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:28)\r\n        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)\r\n        at io.hawt.web.SessionExpiryFilter.process(SessionExpiryFilter.java:103)\r\n        at io.hawt.web.SessionExpiryFilter.doFilter(SessionExpiryFilter.java:47)\r\n        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)\r\n        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)\r\n        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)\r\n        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)\r\n        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)\r\n        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)\r\n        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)\r\n        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)\r\n        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)\r\n        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)\r\n        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)\r\n        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)\r\n        at org.eclipse.jetty.server.Server.handle(Server.java:350)\r\n        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)\r\n        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890)\r\n        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:94\r\n)\r\n        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:630)\r\n        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)\r\n        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)\r\n        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:606)\r\n        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46)\r\n        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603)\r\n        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538)\r\n        at java.lang.Thread.run(Unknown Source)\r\n```\r\n\r\nAll other tabs seem to work but executing operations on those route does also fail:\r\n```\r\njava.net.URISyntaxException: Illegal character in path at index 87: http://127.0.0.1:61619/jolokia//exec/org.apache.camel:context=camel-1,type=routes,name=\"bufferToRtdm file://C:\\Users\\moritz\\AppData\\Local\\Temp\\adapterTest\\five\"/dumpRouteAsXml()\r\n\tat java.net.URI$Parser.fail(Unknown Source)\r\n\tat java.net.URI$Parser.checkChars(Unknown Source)\r\n\tat java.net.URI$Parser.parseHierarchical(Unknown Source)\r\n\tat java.net.URI$Parser.parse(Unknown Source)\r\n\tat java.net.URI.<init>(Unknown Source)\r\n\tat io.hawt.web.ProxyServlet.service(ProxyServlet.java:174)\r\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:848)\r\n\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:598)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1367)\r\n\tat io.hawt.web.CORSFilter.doFilter(CORSFilter.java:42)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)\r\n\tat io.hawt.web.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:28)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)\r\n\tat io.hawt.web.SessionExpiryFilter.process(SessionExpiryFilter.java:103)\r\n\tat io.hawt.web.SessionExpiryFilter.doFilter(SessionExpiryFilter.java:47)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)\r\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)\r\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)\r\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)\r\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)\r\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)\r\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)\r\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)\r\n\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)\r\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)\r\n\tat org.eclipse.jetty.server.Server.handle(Server.java:350)\r\n\tat org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)\r\n\tat org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890)\r\n\tat org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944)\r\n\tat org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:630)\r\n\tat org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)\r\n\tat org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)\r\n\tat org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:606)\r\n\tat org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46)\r\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603)\r\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538)\r\n\tat java.lang.Thread.run(Unknown Source)\r\n```\r\n\r\nUPDATE:\r\nthis also happens with normal ids' like \"itsToCep\":\r\n```\r\n[qtp711024789-17] WARN org.eclipse.jetty.servlet.ServletHandler - /hawtio/proxy/http://127.0.0.1:61619/jolokia//list/org\r\n.apache.camel/context=camel-1,type=routes,name=%22itsToCep%22\r\njava.net.URISyntaxException: Illegal character in path at index 87: http://127.0.0.1:61619/jolokia//list/org.apache.came\r\nl/context=camel-1,type=routes,name=\"itsToCep\"?maxDepth=7&maxCollectionSize=500&ignoreErrors=true&canonicalNaming=false\r\n        at java.net.URI$Parser.fail(Unknown Source)\r\n        at java.net.URI$Parser.checkChars(Unknown Source)\r\n        at java.net.URI$Parser.parseHierarchical(Unknown Source)\r\n        at java.net.URI$Parser.parse(Unknown Source)\r\n        at java.net.URI.<init>(Unknown Source)\r\n        at io.hawt.web.ProxyServlet.service(ProxyServlet.java:174)\r\n        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)\r\n        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:598)\r\n        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1367)\r\n        at io.hawt.web.CORSFilter.doFilter(CORSFilter.java:42)\r\n        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)\r\n        at io.hawt.web.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:28)\r\n        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)\r\n        at io.hawt.web.SessionExpiryFilter.process(SessionExpiryFilter.java:103)\r\n        at io.hawt.web.SessionExpiryFilter.doFilter(SessionExpiryFilter.java:47)\r\n        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)\r\n        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)\r\n        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)\r\n        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)\r\n        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)\r\n        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)\r\n        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)\r\n        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)\r\n        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)\r\n        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)\r\n        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)\r\n        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)\r\n        at org.eclipse.jetty.server.Server.handle(Server.java:350)\r\n        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)\r\n        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890)\r\n        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944\r\n)\r\n        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:630)\r\n        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)\r\n        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)\r\n        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:606)\r\n        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46)\r\n        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603)\r\n        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538)\r\n        at java.lang.Thread.run(Unknown Source)\r\n```"},"comment":{"url":"https://api.github.com/repos/hawtio/hawtio/issues/comments/73506473","html_url":"https://github.com/hawtio/hawtio/issues/1900#issuecomment-73506473","issue_url":"https://api.github.com/repos/hawtio/hawtio/issues/1900","id":73506473,"user":{"login":"gashcrumb","id":351660,"avatar_url":"https://avatars.githubusercontent.com/u/351660?v=3","gravatar_id":"","url":"https://api.github.com/users/gashcrumb","html_url":"https://github.com/gashcrumb","followers_url":"https://api.github.com/users/gashcrumb/followers","following_url":"https://api.github.com/users/gashcrumb/following{/other_user}","gists_url":"https://api.github.com/users/gashcrumb/gists{/gist_id}","starred_url":"https://api.github.com/users/gashcrumb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gashcrumb/subscriptions","organizations_url":"https://api.github.com/users/gashcrumb/orgs","repos_url":"https://api.github.com/users/gashcrumb/repos","events_url":"https://api.github.com/users/gashcrumb/events{/privacy}","received_events_url":"https://api.github.com/users/gashcrumb/received_events","type":"User","site_admin":false},"created_at":"2015-02-09T13:16:37Z","updated_at":"2015-02-09T13:16:37Z","body":"Looks like its mostly a matter of improving the URL escaping for query params.  Maybe its worth running the URL through uri.js and urlencode each query param value to be on the safe side..."}}