Affects Version/s: 10.13.1.0
Fix Version/s: None
Issue & fix info:Repro attached
SYSCS_IMPORT_TABLE_BULK and SYSCS_IMPORT_DATA_BULK procedures gives two different line numbers in same error message.
For a test like following
cSt = prepareCall(
" call SYSCS_UTIL.SYSCS_IMPORT_DATA_BULK(null, "
+ "'PET' , null , '1,2,3' , 'extinout/pet.dat' "
+ " , null , null , null, 0, 7) ");
it gives the error message
[junit] Import error on line 1 of file extinout/pet.dat: Read end of file at unexpected place on line 7.
Note : pet.dat file has only 6 lines to be imported.
There are multiple objects of importReadData. One is used by readHeaders() method in Import.java which is maintaining its own lineNumber.
The problem involves the fact that the Import object and the ImportReadData object are two separate objects, and the Import object has a "lineNumber" (which is actually in the ImportAbstract superclass), and the ImportReadData object has a separate "lineNumber".
It's possible that if ImportAbstract.getCurrentLineNumber()
were changed so that it checked to see if its importReadData
member was non-NULL, and then returned
importReadData.getCurrentRowNumber() rather than simply always
returning its own lineNumber, then these error messages would
report the lineNumber better in more cases.