From a1871e5557e8770d5be73691ebdca75a83cb993d Mon Sep 17 00:00:00 2001 From: Muneyuki Noguchi Date: Fri, 18 Apr 2014 21:13:15 -0700 Subject: [PATCH 1/3] Use URLEncoder#encode with the encoding specified. We should set the name of character encoding to UTF-8 explicitly because URLEncoder#encode without the encoding parameter is deprecated and the W3C states that UTF-8 should be used according to Java API docs. --- storm-core/src/clj/backtype/storm/config.clj | 2 +- storm-core/src/clj/backtype/storm/daemon/supervisor.clj | 2 +- storm-core/src/clj/backtype/storm/ui/helpers.clj | 4 ++-- storm-core/src/clj/backtype/storm/util.clj | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/storm-core/src/clj/backtype/storm/config.clj b/storm-core/src/clj/backtype/storm/config.clj index 955fdfed920..15be94dd36d 100644 --- a/storm-core/src/clj/backtype/storm/config.clj +++ b/storm-core/src/clj/backtype/storm/config.clj @@ -163,7 +163,7 @@ (defn supervisor-stormdist-root ([conf] (str (supervisor-local-dir conf) file-path-separator "stormdist")) ([conf storm-id] - (str (supervisor-stormdist-root conf) file-path-separator (java.net.URLEncoder/encode storm-id)))) + (str (supervisor-stormdist-root conf) file-path-separator (url-encode storm-id)))) (defn supervisor-stormjar-path [stormroot] (str stormroot file-path-separator "stormjar.jar")) diff --git a/storm-core/src/clj/backtype/storm/daemon/supervisor.clj b/storm-core/src/clj/backtype/storm/daemon/supervisor.clj index 43cb6fe8b81..e2e246f26a7 100644 --- a/storm-core/src/clj/backtype/storm/daemon/supervisor.clj +++ b/storm-core/src/clj/backtype/storm/daemon/supervisor.clj @@ -460,7 +460,7 @@ " -Dworker.id=" worker-id " -Dworker.port=" port " -cp " classpath " backtype.storm.daemon.worker " - (java.net.URLEncoder/encode storm-id) " " (:assignment-id supervisor) + (url-encode storm-id) " " (:assignment-id supervisor) " " port " " worker-id)] (log-message "Launching worker with command: " command) (launch-process command :environment {"LD_LIBRARY_PATH" (conf JAVA-LIBRARY-PATH)}) diff --git a/storm-core/src/clj/backtype/storm/ui/helpers.clj b/storm-core/src/clj/backtype/storm/ui/helpers.clj index 45e051ce312..dcd4a211db1 100644 --- a/storm-core/src/clj/backtype/storm/ui/helpers.clj +++ b/storm-core/src/clj/backtype/storm/ui/helpers.clj @@ -17,7 +17,7 @@ (:use compojure.core) (:use [hiccup core page-helpers]) (:use [clojure [string :only [join]]]) - (:use [backtype.storm.util :only [uuid defnk]]) + (:use [backtype.storm.util :only [uuid defnk url-encode]]) (:use [clj-time coerce format]) (:import [backtype.storm.generated ExecutorInfo ExecutorSummary]) (:require [compojure.route :as route] @@ -130,7 +130,7 @@ $(\"table#%s\").each(function(i) { $(this).tablesorter({ sortList: %s, headers: (defn url-format [fmt & args] (String/format fmt - (to-array (map #(java.net.URLEncoder/encode (str %)) args)))) + (to-array (map #(url-encode (str %)) args)))) (defn to-tasks [^ExecutorInfo e] (let [start (.get_task_start e) diff --git a/storm-core/src/clj/backtype/storm/util.clj b/storm-core/src/clj/backtype/storm/util.clj index 8bfacd3dc5d..dde8b85030c 100644 --- a/storm-core/src/clj/backtype/storm/util.clj +++ b/storm-core/src/clj/backtype/storm/util.clj @@ -763,7 +763,7 @@ )) (defn url-encode [s] - (java.net.URLEncoder/encode s)) + (java.net.URLEncoder/encode s "UTF-8")) (defn join-maps [& maps] (let [all-keys (apply set/union (for [m maps] (-> m keys set)))] From 0877e1530eedf4f2cbf03142e32ed773b52ed4bd Mon Sep 17 00:00:00 2001 From: Muneyuki Noguchi Date: Mon, 21 Apr 2014 08:04:20 +0900 Subject: [PATCH 2/3] Use decode with the encoding specified. --- .../src/clj/backtype/storm/daemon/supervisor.clj | 2 +- .../src/clj/backtype/storm/daemon/worker.clj | 2 +- storm-core/src/clj/backtype/storm/ui/core.clj | 14 +++++++------- storm-core/src/clj/backtype/storm/util.clj | 3 +++ 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/storm-core/src/clj/backtype/storm/daemon/supervisor.clj b/storm-core/src/clj/backtype/storm/daemon/supervisor.clj index e2e246f26a7..66e658133ee 100644 --- a/storm-core/src/clj/backtype/storm/daemon/supervisor.clj +++ b/storm-core/src/clj/backtype/storm/daemon/supervisor.clj @@ -69,7 +69,7 @@ (map-val :master-code-dir assignments-snapshot)) (defn- read-downloaded-storm-ids [conf] - (map #(java.net.URLDecoder/decode %) (read-dir-contents (supervisor-stormdist-root conf))) + (map #(url-decode %) (read-dir-contents (supervisor-stormdist-root conf))) ) (defn read-worker-heartbeat [conf id] diff --git a/storm-core/src/clj/backtype/storm/daemon/worker.clj b/storm-core/src/clj/backtype/storm/daemon/worker.clj index 3055b66bc65..faff7a062cf 100644 --- a/storm-core/src/clj/backtype/storm/daemon/worker.clj +++ b/storm-core/src/clj/backtype/storm/daemon/worker.clj @@ -451,4 +451,4 @@ (defn -main [storm-id assignment-id port-str worker-id] (let [conf (read-storm-config)] (validate-distributed-mode! conf) - (mk-worker conf nil (java.net.URLDecoder/decode storm-id) assignment-id (Integer/parseInt port-str) worker-id))) + (mk-worker conf nil (url-decode storm-id) assignment-id (Integer/parseInt port-str) worker-id))) diff --git a/storm-core/src/clj/backtype/storm/ui/core.clj b/storm-core/src/clj/backtype/storm/ui/core.clj index ad4b97fa915..e108690b64a 100644 --- a/storm-core/src/clj/backtype/storm/ui/core.clj +++ b/storm-core/src/clj/backtype/storm/ui/core.clj @@ -1017,7 +1017,7 @@ ui-template)) (GET "/topology/:id" [:as {cookies :cookies} id & m] (let [include-sys? (get-include-sys? cookies) - id (java.net.URLDecoder/decode id)] + id (url-decode id)] (try (-> (topology-page id (:window m) include-sys?) (concat [(mk-system-toggle-button include-sys?)]) @@ -1025,14 +1025,14 @@ (catch Exception e (resp/redirect "/"))))) (GET "/topology/:id/component/:component" [:as {cookies :cookies} id component & m] (let [include-sys? (get-include-sys? cookies) - id (java.net.URLDecoder/decode id) - component (java.net.URLDecoder/decode component)] + id (url-decode id) + component (url-decode component)] (-> (component-page id component (:window m) include-sys?) (concat [(mk-system-toggle-button include-sys?)]) ui-template))) (POST "/topology/:id/activate" [id] (with-nimbus nimbus - (let [id (java.net.URLDecoder/decode id) + (let [id (url-decode id) tplg (.getTopologyInfo ^Nimbus$Client nimbus id) name (.get_name tplg)] (.activate nimbus name) @@ -1040,7 +1040,7 @@ (resp/redirect (str "/topology/" id))) (POST "/topology/:id/deactivate" [id] (with-nimbus nimbus - (let [id (java.net.URLDecoder/decode id) + (let [id (url-decode id) tplg (.getTopologyInfo ^Nimbus$Client nimbus id) name (.get_name tplg)] (.deactivate nimbus name) @@ -1048,7 +1048,7 @@ (resp/redirect (str "/topology/" id))) (POST "/topology/:id/rebalance/:wait-time" [id wait-time] (with-nimbus nimbus - (let [id (java.net.URLDecoder/decode id) + (let [id (url-decode id) tplg (.getTopologyInfo ^Nimbus$Client nimbus id) name (.get_name tplg) options (RebalanceOptions.)] @@ -1058,7 +1058,7 @@ (resp/redirect (str "/topology/" id))) (POST "/topology/:id/kill/:wait-time" [id wait-time] (with-nimbus nimbus - (let [id (java.net.URLDecoder/decode id) + (let [id (url-decode id) tplg (.getTopologyInfo ^Nimbus$Client nimbus id) name (.get_name tplg) options (KillOptions.)] diff --git a/storm-core/src/clj/backtype/storm/util.clj b/storm-core/src/clj/backtype/storm/util.clj index dde8b85030c..fc36b4ec249 100644 --- a/storm-core/src/clj/backtype/storm/util.clj +++ b/storm-core/src/clj/backtype/storm/util.clj @@ -765,6 +765,9 @@ (defn url-encode [s] (java.net.URLEncoder/encode s "UTF-8")) +(defn url-decode [s] + (java.net.URLDecoder/decode s "UTF-8")) + (defn join-maps [& maps] (let [all-keys (apply set/union (for [m maps] (-> m keys set)))] (into {} From 351895a9b1c02738e64bc04812759b1a6f8c0bd6 Mon Sep 17 00:00:00 2001 From: Muneyuki Noguchi Date: Fri, 25 Apr 2014 01:52:57 +0900 Subject: [PATCH 3/3] Replace another URLDecoder#decode. --- storm-core/src/clj/backtype/storm/ui/core.clj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/storm-core/src/clj/backtype/storm/ui/core.clj b/storm-core/src/clj/backtype/storm/ui/core.clj index d5e752358e9..ad1a03896a4 100644 --- a/storm-core/src/clj/backtype/storm/ui/core.clj +++ b/storm-core/src/clj/backtype/storm/ui/core.clj @@ -29,7 +29,6 @@ Nimbus$Client StormTopology GlobalStreamId RebalanceOptions KillOptions]) (:import [java.io File]) - (:import [java.net URLDecoder]) (:require [compojure.route :as route] [compojure.handler :as handler] [ring.util.response :as resp] @@ -1020,7 +1019,7 @@ (let [include-sys? (get-include-sys? cookies) id (url-decode id)] (try - (-> (topology-page (URLDecoder/decode id) (:window m) include-sys?) + (-> (topology-page (url-decode id) (:window m) include-sys?) (concat [(mk-system-toggle-button include-sys?)]) ui-template) (catch Exception e (resp/redirect "/")))))