From 111656b7b11dd5da7bd75492489a97ab01f5e4b2 Mon Sep 17 00:00:00 2001 From: Katharina Wurz Date: Tue, 9 Aug 2022 17:21:46 +0200 Subject: [PATCH] Deal with empty active version (object was never activated) (#5714) * Deal with empty active version * Put if condition into method --- .../zcl_abapgit_object_common_aff.clas.abap | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap b/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap index 16be45052..27a60e392 100644 --- a/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap +++ b/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap @@ -10,12 +10,17 @@ CLASS zcl_abapgit_object_common_aff DEFINITION ABSTRACT METHODS changed_by . PROTECTED SECTION. PRIVATE SECTION. + METHODS is_file_empty + IMPORTING + io_object_json_file TYPE REF TO object + RETURNING + VALUE(rv_is_empty) TYPE abap_bool. ENDCLASS. -CLASS ZCL_ABAPGIT_OBJECT_COMMON_AFF IMPLEMENTATION. +CLASS zcl_abapgit_object_common_aff IMPLEMENTATION. METHOD zif_abapgit_object~delete. @@ -348,7 +353,9 @@ CLASS ZCL_ABAPGIT_OBJECT_COMMON_AFF IMPLEMENTATION. lo_aff_factory TYPE REF TO object, lv_json_as_xstring TYPE xstring, lx_exception TYPE REF TO cx_root, - lv_name TYPE c LENGTH 120. + lv_name TYPE c LENGTH 120, + lv_is_deletion TYPE abap_bool VALUE abap_false, + lv_dummy TYPE string. FIELD-SYMBOLS: TYPE any, TYPE any, @@ -430,6 +437,12 @@ CLASS ZCL_ABAPGIT_OBJECT_COMMON_AFF IMPLEMENTATION. RECEIVING result = lo_object_json_file. + " avoid to serialize empty content (object was never activated, exists inactive only). + IF is_file_empty( lo_object_json_file ) = abap_true. + MESSAGE s821(eu) WITH lv_name INTO lv_dummy. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + CALL METHOD lo_object_json_file->('IF_AFF_FILE~GET_CONTENT') RECEIVING result = lv_json_as_xstring. @@ -443,4 +456,13 @@ CLASS ZCL_ABAPGIT_OBJECT_COMMON_AFF IMPLEMENTATION. ENDTRY. ENDMETHOD. + + + METHOD is_file_empty. + + CALL METHOD io_object_json_file->('IF_AFF_FILE~IS_DELETION') + RECEIVING + result = rv_is_empty. + + ENDMETHOD. ENDCLASS.