modified dataBlockLen as Long and added null checking in isEquivalent
added hasEndPosOnData and getEndPosOnData