Guest User

Untitled

a guest
Feb 28th, 2014
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; ignore-execptions
  2. (defn async-gets [urls]
  3.   (doall (map #(future (client/get % {:oauth-token (:access_token @access-token)
  4.                                       :ignore-exceptions true}))
  5.               urls)))
  6.  
  7. ; this returns exception
  8. (let [gets (async-gets (take 10 url-list-from-symbols))
  9.       fail? (fn [req-fut] (instance? java.util.concurrent.ExecutionException
  10.                                      (try @req-fut (catch Exception e (.getCause e)))))]
  11.   (map deref gets))
  12.  
  13. ; Exception:
  14.  
  15. java.util.concurrent.ExecutionException: clojure.lang.ExceptionInfo: clj-http: status 401 {:object {:orig-content-encoding nil, :trace-redirects ["https://api.tradestation.com/v2/data/quote/STON"], :request-time 801, :status 401, :headers {"x-servername" "NY04VWEBAPI45", "access-control-allow-origin" "*", "server" "Microsoft-IIS/7.5", "content-type" "application/json", "date" "Fri, 28 Feb 2014 17:21:40 GMT", "cache-control" "private", "content-length" "56", "connection" "close", "x-aspnet-version" "4.0.30319"}, :body "{\"Message\":\"Access token has expired.\",\"StatusCode\":401}"}, :environment {client #<client$wrap_output_coercion$fn__7693 clj_http.client$wrap_output_coercion$fn__7693@6a77deb5>, req {:request-method :get, :url "https://api.tradestation.com/v2/data/quote/STON", :oauth-token "mytoken", :ignore-exceptions true}, map__7578 {:orig-content-encoding nil, :trace-redirects ["https://api.tradestation.com/v2/data/quote/STON"], :request-time 801, :status 401, :headers {"x-servername" "NY04VWEBAPI45", "access-control-allow-origin" "*", "server" "Microsoft-IIS/7.5", "content-type" "application/json", "date" "Fri, 28 Feb 2014 17:21:40 GMT", "cache-control" "private", "content-length" "56", "connection" "close", "x-aspnet-version" "4.0.30319"}, :body "{\"Message\":\"Access token has expired.\",\"StatusCode\":401}"}, resp {:orig-content-encoding nil, :trace-redirects ["https://api.tradestation.com/v2/data/quote/STON"], :request-time 801, :status 401, :headers {"x-servername" "NY04VWEBAPI45", "access-control-allow-origin" "*", "server" "Microsoft-IIS/7.5", "content-type" "application/json", "date" "Fri, 28 Feb 2014 17:21:40 GMT", "cache-control" "private", "content-length" "56", "connection" "close", "x-aspnet-version" "4.0.30319"}, :body "{\"Message\":\"Access token has expired.\",\"StatusCode\":401}"}, status 401}}
  16.       FutureTask.java:122 java.util.concurrent.FutureTask.report
  17.       FutureTask.java:188 java.util.concurrent.FutureTask.get
  18.             core.clj:2108 clojure.core/deref-future
  19.             core.clj:6308 clojure.core/future-call[fn]
  20.             core.clj:2128 clojure.core/deref
  21.             core.clj:2487 clojure.core/map[fn]
  22.           LazySeq.java:42 clojure.lang.LazySeq.sval
  23.           LazySeq.java:60 clojure.lang.LazySeq.seq
  24.               RT.java:484 clojure.lang.RT.seq
  25.              core.clj:133 clojure.core/seq
  26.         core_print.clj:46 clojure.core/print-sequential
  27.        core_print.clj:143 clojure.core/fn
  28.          MultiFn.java:231 clojure.lang.MultiFn.invoke
  29.             core.clj:3322 clojure.core/pr-on
  30.             core.clj:3334 clojure.core/pr
  31.              AFn.java:161 clojure.lang.AFn.applyToHelper
  32.           RestFn.java:132 clojure.lang.RestFn.applyTo
  33.              core.clj:617 clojure.core/apply
  34.             core.clj:4297 clojure.core/pr-str
  35.           RestFn.java:408 clojure.lang.RestFn.invoke
  36.               eval.clj:69 lighttable.nrepl.eval/clean-serialize
  37.           RestFn.java:423 clojure.lang.RestFn.invoke
  38.               eval.clj:82 lighttable.nrepl.eval/->result
  39.              AFn.java:163 clojure.lang.AFn.applyToHelper
  40.              AFn.java:151 clojure.lang.AFn.applyTo
  41.              core.clj:619 clojure.core/apply
  42.             core.clj:2396 clojure.core/partial[fn]
  43.           RestFn.java:408 clojure.lang.RestFn.invoke
  44.             core.clj:2485 clojure.core/map[fn]
  45.           LazySeq.java:42 clojure.lang.LazySeq.sval
  46.           LazySeq.java:60 clojure.lang.LazySeq.seq
  47.               RT.java:484 clojure.lang.RT.seq
  48.              core.clj:133 clojure.core/seq
  49.             core.clj:2523 clojure.core/filter[fn]
  50.           LazySeq.java:42 clojure.lang.LazySeq.sval
  51.           LazySeq.java:60 clojure.lang.LazySeq.seq
  52.               RT.java:484 clojure.lang.RT.seq
  53.              core.clj:133 clojure.core/seq
  54.             core.clj:2780 clojure.core/dorun
  55.             core.clj:2796 clojure.core/doall
  56.              eval.clj:125 lighttable.nrepl.eval/eval-clj
  57.           RestFn.java:442 clojure.lang.RestFn.invoke
  58.              eval.clj:191 lighttable.nrepl.eval/eval2467[fn]
  59.              AFn.java:159 clojure.lang.AFn.applyToHelper
  60.              AFn.java:151 clojure.lang.AFn.applyTo
  61.              core.clj:617 clojure.core/apply
  62.             core.clj:1788 clojure.core/with-bindings*
  63.           RestFn.java:425 clojure.lang.RestFn.invoke
  64.              eval.clj:176 lighttable.nrepl.eval/eval2467[fn]
  65.              eval.clj:175 lighttable.nrepl.eval/eval2467[fn]
  66.          MultiFn.java:227 clojure.lang.MultiFn.invoke
  67.               core.clj:92 lighttable.nrepl.core/queued[fn]
  68.             core.clj:2330 clojure.core/comp[fn]
  69. interruptible_eval.clj:138 clojure.tools.nrepl.middleware.interruptible-eval/run-next[fn]
  70.               AFn.java:24 clojure.lang.AFn.run
  71. ThreadPoolExecutor.java:1145 java.util.concurrent.ThreadPoolExecutor.runWorker
  72. ThreadPoolExecutor.java:615 java.util.concurrent.ThreadPoolExecutor$Worker.run
  73.           Thread.java:744 java.lang.Thread.run
  74. Caused by: clojure.lang.ExceptionInfo: clj-http: status 401
  75.            client.clj:154 clj-http.client/wrap-exceptions[fn]
  76.            client.clj:487 clj-http.client/wrap-accept[fn]
  77.            client.clj:501 clj-http.client/wrap-accept-encoding[fn]
  78.            client.clj:477 clj-http.client/wrap-content-type[fn]
  79.            client.clj:592 clj-http.client/wrap-form-params[fn]
  80.            client.clj:616 clj-http.client/wrap-nested-params[fn]
  81.            client.clj:575 clj-http.client/wrap-method[fn]
  82.           cookies.clj:121 clj-http.cookies/wrap-cookies[fn]
  83.              links.clj:50 clj-http.links/wrap-links[fn]
  84.            client.clj:635 clj-http.client/wrap-unknown-host[fn]
  85.            client.clj:742 clj-http.client/get
  86.           RestFn.java:423 clojure.lang.RestFn.invoke
  87. /Users/jjelinek/Documents/repos/sample-webapi-clojure/src/sample_webapi_clojure/core.clj:145 sample-webapi-clojure.core/async-gets[fn]
  88.             core.clj:1836 clojure.core/binding-conveyor-fn[fn]
  89.               AFn.java:18 clojure.lang.AFn.call
  90.       FutureTask.java:262 java.util.concurrent.FutureTask.run
  91.  
  92. ; ignore-exceptions?
  93. (defn async-gets [urls]
  94.   (doall (map #(future (client/get % {:oauth-token (:access_token @access-token)
  95.                                       :ignore-exceptions? true}))
  96.               urls)))
  97.  
  98. ; this returns exception
  99. (let [gets (async-gets (take 10 url-list-from-symbols))
  100.       fail? (fn [req-fut] (instance? java.util.concurrent.ExecutionException
  101.                                      (try @req-fut (catch Exception e (.getCause e)))))]
  102.   (map deref gets))
  103.  
  104. ; this returns (false false false false false false false false false false)
  105. (let [gets (async-gets (take 10 url-list-from-symbols))
  106.       fail? (fn [req-fut] (instance? java.util.concurrent.ExecutionException
  107.                                      (try @req-fut (catch Exception e (.getCause e)))))]
  108.   (map fail? gets))
Advertisement
Add Comment
Please, Sign In to add comment