corrupt metadata leads to null pointer exception when trying to build table 
descriptor.
---------------------------------------------------------------------------------------

                 Key: DERBY-2783
                 URL: https://issues.apache.org/jira/browse/DERBY-2783
             Project: Derby
          Issue Type: Bug
    Affects Versions: 10.2.2.0
            Reporter: Mike Matrigali
            Priority: Minor


While trying to data mine a corrupted database got null pointer exceptions 
followed by RawStore module error on all subsequent  calls.  I don't have the
database so the following description is just a guess at what is happening 
based on the provided stack trace and looking at the code.

My guess is that the metadata is corrupted in some way such that an index to 
base table lookup of the metadata does not find a row.  This would lead to 
the code in DataDictionaryImpl.getDescriptorViaIndex() maybe getting no rows 
back  from the call to:
            {
                base_row_exists =
                    heapCC.fetch(
                        baseRowLocation, outRow.getRowArray(), (FormatableBitSet
) null);
            }

The current code does a bunch of checking in SANE code for base_row_exists, but 
does not check at all in insane code.  The code should 
throw an exception if  base_row_exists is false.  

What I think is happening is that code then try's to initialize the descriptor 
based on a row that never got read.  This eventually lead to 
a call to create a UUID based on a string which is null, and StringReader x = 
new StringReader(null); results in a null pointer exception.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to