diff --git a/modules/mod_admin_modules/actions/action_admin_modules_module_rescan.erl b/modules/mod_admin_modules/actions/action_admin_modules_module_rescan.erl index b589bfd992..7cd77601af 100644 --- a/modules/mod_admin_modules/actions/action_admin_modules_module_rescan.erl +++ b/modules/mod_admin_modules/actions/action_admin_modules_module_rescan.erl @@ -39,6 +39,5 @@ render_action(TriggerId, TargetId, Args, Context) -> %% @spec event(Event, Context1) -> Context2 event({postback, {module_rescan, Actions}, _TriggerId, _TargetId}, Context) -> z_notifier:notify(module_ready, Context), - z_dispatcher:reload(Context), Context1 = z_render:growl("Module rescan is in progress.", Context), z_render:wire(Actions, Context1). diff --git a/src/support/z_dispatcher.erl b/src/support/z_dispatcher.erl index db6fe4e11f..a9de69378b 100644 --- a/src/support/z_dispatcher.erl +++ b/src/support/z_dispatcher.erl @@ -221,7 +221,13 @@ code_change(_OldVsn, State, _Extra) -> %% @doc Reload the dispatch list and send it to the webmachine dispatcher. reload_dispatch_list(#state{context=Context} = State) -> - DispatchList = collect_dispatch_lists(Context), + DispatchList = try + collect_dispatch_lists(Context) + catch + _:{error, Msg} -> + z_session_manager:broadcast(#broadcast{type="error", message="Dispatch error! " ++ Msg, title="Dispatcher", stay=false}, Context), + State#state.dispatchlist + end, LookupDict = dispatch_for_uri_lookup(DispatchList), State#state{dispatchlist=DispatchList, lookup=LookupDict}. @@ -271,7 +277,7 @@ get_file_dispatch(File) -> catch M:E -> ?ERROR("File dispatch error: ~p ~p", [File, {M,E}]), - [] + throw({error, "Parse error in " ++ z_convert:to_list(File)}) end.