* Issue 3066: Class text elements translation
* Removed comments for Issue 3066
* Pull request checks
* Travis-CI checks fixes
* Travis-CI checks fixes - Identation
* Interfaces pretty printed
* Travis-CI identation check
* Travis-CI identation check
* Changes type tt_langu and serialization
Type tt_langu moved from zif_abapgit_definitions to ZCL_ABAPGIT_OBJECTS_PROGRAM
Encapsulated code to serialize DOCU, TPOOL and SOTR for classes
* abaplint corrections
* abaplint corrections
* Encapsulated serialization %26 new IF lang def.
* zif_abapgit_definitions types indentation
* Restore zif_abapgit_definitions
* Revert zcl_abapgit_object_clas
* Revert zcl_abapgit_object_clas
* Revert zcl_abapgit_objects_program
* Revert zif_abapgit_oo_object_fnc.intf.abap
* Revert zcl_abapgit_object_clas.clas.abap
* Class text language
* Class text language
Co-authored-by: Lars Hvam <larshp@hotmail.com>
During creation of classes with redefinitions in the protected section, entries in table SEOREDEF are not updated properly.
Reason: The buffer of Class Builder does not recognize the creation of the inheritance in the active version. During the creation of the super class relationship in SEO_INHERITANCE_CREATE_F_DATA only the inactive buffer is updated. The buffer for the active version has still the state that the class has no super class.
Therefore, SEOREDEF is filled with an empty super class name.
If the buffer is refreshed before the metadata is updated, the super class is read correctly before SEOREDEF entries are created.
The methods CL_OO_CLASS_SECTION_SOURCE=>SCAN_SECTION_SOURCE calls the
function SCAN_ABAP_OBJECTS_SECTION without the parameter superclsname
which causes that variable scan_result (vse_tabs) holds a broken table of
redefinitions for protected methods which leads into a short dump during
CL_OO_CLASS_SECTION_SOURCE=>REVERT_SCAN_RESULTS.
The problem does not occur for public section because the public section
contains "CLASS ... INHERITING FROM ...", so superclsname gets
populated. It's obvious that the class definition statement is not
present in the protected section.
The crash is reported as DBSQL_DUPLICATE_KEY_ERROR in the program
SAPLSEOR at INSERT_REDEFINITIONS.
The code is the following:
* first refresh db table
perform delete_redefinitions
using inhkey.
delete adjacent duplicates from redefinitions.
* insert again
insert seoredef from table redefinitions.
One might think that the delete statement form clears the table seoredef
but the problem is that the variable inhkey contains the super class
name so no redefinitions are actually removed and the insert statement
attempts to insert the redefinitions without parent class again.
The proper solution is to enhance CL_OO_CLASS_SECTION_SOURCE=>SCAN_SECTION_SOURCE
to pass the super class name to SCAN_ABAP_OBJECTS_SECTION - at least for
the protected section.
However, I am not patient and I am not going to wait for the proper fix
(which the maintainers may refuse).