apache/storm — pull request #303 by NareshKosgi (2014-10-27 16:34:40+00:00)
Title: STORM-456:Storm UI cannot navigate to topology page when name contains spaces

1. The issue is due to space being replaced by "+" by the framework
2. In the routes function for core.clj I added a check for search and replace for "+" for the id being passed
3. I tested by changing the word count example and is working as I can click on the "word count" topology and get to the next page but the next page errors out with the following exception:
NotAliveException(msg:word+count-1-1414427540)
at backtype.storm.generated.Nimbus$getTopologyInfo_result.read(Nimbus.java:11347)
at org.apache.thrift7.TServiceClient.receiveBase(TServiceClient.java:78)
at backtype.storm.generated.Nimbus$Client.recv_getTopologyInfo(Nimbus.java:491)
at backtype.storm.generated.Nimbus$Client.getTopologyInfo(Nimbus.java:478)
at backtype.storm.ui.core$topology_page.invoke(core.clj:628)
at backtype.storm.ui.core$fn__8177.invoke(core.clj:853)
at compojure.core$make_route$fn__6356.invoke(core.clj:93)
at compojure.core$if_route$fn__6344.invoke(core.clj:39)
at compojure.core$if_method$fn__6337.invoke(core.clj:24)
at compojure.core$routing$fn__6362.invoke(core.clj:106)
at clojure.core$some.invoke(core.clj:2443)
at compojure.core$routing.doInvoke(core.clj:106)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:619)
at compojure.core$routes$fn__6366.invoke(core.clj:111)
at ring.middleware.reload$wrap_reload$fn__6391.invoke(reload.clj:14)
at backtype.storm.ui.core$catch_errors$fn__8216.invoke(core.clj:909)
at ring.middleware.keyword_params$wrap_keyword_params$fn__7033.invoke(keyword_params.clj:27)
at ring.middleware.nested_params$wrap_nested_params$fn__7072.invoke(nested_params.clj:65)
at ring.middleware.params$wrap_params$fn__7005.invoke(params.clj:55)
at ring.middleware.multipart_params$wrap_multipart_params$fn__7100.invoke(multipart_params.clj:103)
at ring.middleware.flash$wrap_flash$fn__7281.invoke(flash.clj:14)
at ring.middleware.session$wrap_session$fn__7270.invoke(session.clj:43)
at ring.middleware.cookies$wrap_cookies$fn__7201.invoke(cookies.clj:160)
at ring.adapter.jetty$proxy_handler$fn__7481.invoke(jetty.clj:16)
at ring.adapter.jetty.proxy$org.mortbay.jetty.handler.AbstractHandler$0.handle(Unknown Source)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

I'm guessing I need to do a search and replace for the m as well and not just id? I know this pull request is not complete, I wanted to create a pull request and make sure I'm taking the correct approach to resolving this ticket.

P.S
I changed word count topology just for testing purpose, I will revert it back once I complete the testing.