From 526162ed6ef03d060bdc477a2e72ca958bc618f8 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Wed, 14 Dec 2022 13:10:43 -0500 Subject: [PATCH] PRAG: Fix locking and transport entries (#5939) --- src/objects/zcl_abapgit_object_prag.clas.abap | 63 +++++++------------ 1 file changed, 21 insertions(+), 42 deletions(-) diff --git a/src/objects/zcl_abapgit_object_prag.clas.abap b/src/objects/zcl_abapgit_object_prag.clas.abap index 2670caf2a..40bd5a605 100644 --- a/src/objects/zcl_abapgit_object_prag.clas.abap +++ b/src/objects/zcl_abapgit_object_prag.clas.abap @@ -12,19 +12,6 @@ CLASS zcl_abapgit_object_prag DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje description TYPE c LENGTH 255, END OF ty_pragma. - METHODS: - _raise_pragma_not_exists - RAISING - zcx_abapgit_exception, - - _raise_pragma_exists - RAISING - zcx_abapgit_exception, - - _raise_pragma_enqueue - RAISING - zcx_abapgit_exception. - ENDCLASS. @@ -41,26 +28,34 @@ CLASS zcl_abapgit_object_prag IMPLEMENTATION. METHOD zif_abapgit_object~delete. - DATA: lo_pragma TYPE REF TO cl_abap_pragma. + DATA: lo_pragma TYPE REF TO cl_abap_pragma, + lx_error TYPE REF TO cx_root. TRY. lo_pragma = cl_abap_pragma=>get_ref( ms_item-obj_name ). lo_pragma->delete( ). + lo_pragma->leave_change( ). "unlock - CATCH cx_abap_pragma_not_exists. - _raise_pragma_not_exists( ). - CATCH cx_abap_pragma_enqueue. - _raise_pragma_enqueue( ). + CATCH cx_root INTO lx_error. + IF lo_pragma IS BOUND. + lo_pragma->leave_change( ). + ENDIF. + zcx_abapgit_exception=>raise( lx_error->get_text( ) ). ENDTRY. + corr_insert( iv_package ). + ENDMETHOD. METHOD zif_abapgit_object~deserialize. DATA: ls_pragma TYPE ty_pragma, - lo_pragma TYPE REF TO cl_abap_pragma. + lo_pragma TYPE REF TO cl_abap_pragma, + lx_error TYPE REF TO cx_root. + + tadir_insert( iv_package ). TRY. io_xml->read( @@ -77,13 +72,12 @@ CLASS zcl_abapgit_object_prag IMPLEMENTATION. p_extension = ls_pragma-extension ). lo_pragma->save( ). - - CATCH cx_abap_pragma_not_exists. - _raise_pragma_not_exists( ). - CATCH cx_abap_pragma_exists. - _raise_pragma_exists( ). - CATCH cx_abap_pragma_enqueue. - _raise_pragma_enqueue( ). + lo_pragma->leave_change( ). "unlock + CATCH cx_root INTO lx_error. + IF lo_pragma IS BOUND. + lo_pragma->leave_change( ). + ENDIF. + zcx_abapgit_exception=>raise( lx_error->get_text( ) ). ENDTRY. ENDMETHOD. @@ -154,23 +148,8 @@ CLASS zcl_abapgit_object_prag IMPLEMENTATION. ig_data = ls_pragma ). CATCH cx_abap_pragma_not_exists. - _raise_pragma_not_exists( ). + zcx_abapgit_exception=>raise( |Pragma { ms_item-obj_name } doesn't exist| ). ENDTRY. ENDMETHOD. - - - METHOD _raise_pragma_enqueue. - zcx_abapgit_exception=>raise( |Pragma { ms_item-obj_name } enqueue error| ). - ENDMETHOD. - - - METHOD _raise_pragma_exists. - zcx_abapgit_exception=>raise( |Pragma { ms_item-obj_name } exists| ). - ENDMETHOD. - - - METHOD _raise_pragma_not_exists. - zcx_abapgit_exception=>raise( |Pragma { ms_item-obj_name } doesn't exist| ). - ENDMETHOD. ENDCLASS.