From e23e93fc741db35eb6fc8767796a9ad5d8e8e195 Mon Sep 17 00:00:00 2001 From: Gregor Wolf Date: Sun, 20 Jul 2014 10:54:30 +0200 Subject: [PATCH] Catch exceptions of ei_client->receive to avoid dump --- zabapgit.abap | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/zabapgit.abap b/zabapgit.abap index f5b35752d..0045dacb6 100644 --- a/zabapgit.abap +++ b/zabapgit.abap @@ -4754,8 +4754,8 @@ CLASS lcl_transport IMPLEMENTATION. DATA: lv_hash TYPE c LENGTH 40, lv_len TYPE i, lt_result TYPE TABLE OF string, - lv_data TYPE string. - + lv_data TYPE string, + lv_text TYPE string. cl_http_client=>create_by_url( EXPORTING @@ -4771,7 +4771,28 @@ CLASS lcl_transport IMPLEMENTATION. name = '~request_uri' value = lcl_url=>path_name( is_repo-url ) && '.git/info/refs?service=git-' && iv_service && '-pack' ). ei_client->send( ). - ei_client->receive( ). + ei_client->receive( + EXCEPTIONS + http_communication_failure = 1 + http_invalid_state = 2 + http_processing_failed = 3 + OTHERS = 4 + ). + IF sy-subrc <> 0. + CASE sy-subrc. + WHEN 1. + lv_text = 'HTTP Communication Failure'. + WHEN 2. + lv_text = 'HTTP Invalid State'. + WHEN 3. + lv_text = 'HTTP Processing failed'. + WHEN OTHERS. + lv_text = 'Another error occured'. + ENDCASE. + RAISE EXCEPTION TYPE lcx_exception + EXPORTING + iv_text = lv_text. + ENDIF. check_http_200( ei_client ).