DEVC: Fix error handling (#6141)

This commit is contained in:
Marc Bernard 2023-03-10 09:40:16 +01:00 committed by GitHub
parent d4cbcc32b2
commit c8ef89d5fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,6 +31,11 @@ CLASS zcl_abapgit_object_devc DEFINITION PUBLIC
!iv_lock TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS unlock_and_raise_error
IMPORTING
!ii_package TYPE REF TO if_package
RAISING
zcx_abapgit_exception .
METHODS is_empty
IMPORTING
!iv_package_name TYPE devclass
@ -270,6 +275,27 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
ENDMETHOD.
METHOD unlock_and_raise_error.
DATA ls_msg TYPE bal_s_msg.
" Remember message since unlock overwrites it (for example with XT465)
MOVE-CORRESPONDING sy TO ls_msg.
set_lock( ii_package = ii_package
iv_lock = abap_false ).
zcx_abapgit_exception=>raise_t100(
iv_msgid = ls_msg-msgid
iv_msgno = ls_msg-msgno
iv_msgv1 = ls_msg-msgv1
iv_msgv2 = ls_msg-msgv2
iv_msgv3 = ls_msg-msgv3
iv_msgv4 = ls_msg-msgv4 ).
ENDMETHOD.
METHOD update_pinf_usages.
DATA: lt_current_permissions TYPE tpak_permission_to_use_list,
li_usage TYPE REF TO if_package_permission_to_use,
@ -429,9 +455,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
ENDTRY.
IF sy-subrc <> 0.
set_lock( ii_package = li_package
iv_lock = abap_false ).
zcx_abapgit_exception=>raise_t100( ).
unlock_and_raise_error( li_package ).
ENDIF.
TRY.
@ -460,10 +484,9 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
OTHERS = 7 ).
ENDTRY.
IF sy-subrc <> 0.
set_lock( ii_package = li_package
iv_lock = abap_false ).
zcx_abapgit_exception=>raise_t100( ).
unlock_and_raise_error( li_package ).
ENDIF.
ENDIF.
@ -576,9 +599,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
* superpackage_invalid = 17 downport, does not exist in 7.30
OTHERS = 18 ).
IF sy-subrc <> 0.
set_lock( ii_package = li_package
iv_lock = abap_false ).
zcx_abapgit_exception=>raise_t100( ).
unlock_and_raise_error( li_package ).
ENDIF.
ELSE.
@ -651,9 +672,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
object_invalid = 4
OTHERS = 5 ).
IF sy-subrc <> 0.
set_lock( ii_package = li_package
iv_lock = abap_false ).
zcx_abapgit_exception=>raise_t100( ).
unlock_and_raise_error( li_package ).
ENDIF.
set_lock( ii_package = li_package