From 9b875aba2168fa8774c97c1df2c8480feacda717 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 9 Feb 2021 16:48:41 +0100 Subject: [PATCH] :bug: Fix unexpected exception on upload invalid image. --- backend/src/app/media.clj | 7 ++++++- frontend/src/app/main/data/workspace/persistence.cljs | 7 +++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/backend/src/app/media.clj b/backend/src/app/media.clj index b775c4852..14a4191e0 100644 --- a/backend/src/app/media.clj +++ b/backend/src/app/media.clj @@ -175,7 +175,12 @@ (ex/raise :type :internal :code :rlimit-not-configured :hint ":image rlimit not configured")) - (rlm/execute rlimit (process params)))) + (try + (rlm/execute rlimit (process params)) + (catch org.im4java.core.InfoException e + (ex/raise :type :validation + :code :invalid-image + :cause e))))) ;; --- Utility functions diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 4b4f5fea2..892d6ed0f 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -417,13 +417,16 @@ (defn- handle-upload-error [on-error stream] (->> stream (rx/catch - (fn on-error [error] + (fn on-error* [error] (if (ex/ex-info? error) - (on-error (ex-data error)) + (on-error* (ex-data error)) (cond (= (:code error) :media-type-not-allowed) (rx/of (dm/error (tr "errors.media-type-not-allowed"))) + (= (:code error) :invalid-image) + (rx/of (dm/error (tr "errors.media-type-not-allowed"))) + (= (:code error) :media-too-large) (rx/of (dm/error (tr "errors.media-too-large")))