git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@630 f203690c-595d-4dc9-a70b-905162fa7fd2tags/jackcess-1.2.8
// re-encode page | // re-encode page | ||||
encodedPage = _codecHandler.encodePage(page, pageNumber, pageOffset); | encodedPage = _codecHandler.encodePage(page, pageNumber, pageOffset); | ||||
// reset position/limit in case they were affected by encoding | |||||
encodedPage.position(pageOffset).limit(pageOffset + writeLen); | |||||
} | } | ||||
try { | try { | ||||
encodedPage.position(pageOffset); | |||||
_channel.write(encodedPage, (getPageOffset(pageNumber) + pageOffset)); | _channel.write(encodedPage, (getPageOffset(pageNumber) + pageOffset)); | ||||
if(_autoSync) { | if(_autoSync) { | ||||
flush(); | flush(); |
throws IOException | throws IOException | ||||
{ | { | ||||
ByteBuffer bb = _bufH.getPageBuffer(_channel); | ByteBuffer bb = _bufH.getPageBuffer(_channel); | ||||
bb.clear(); | |||||
simpleEncode(page.array(), bb.array(), pageNumber, pageOffset, | simpleEncode(page.array(), bb.array(), pageNumber, pageOffset, | ||||
page.limit()); | page.limit()); | ||||
return bb; | return bb; | ||||
assertEquals(_channel.getFormat().PAGE_SIZE, page.limit()); | assertEquals(_channel.getFormat().PAGE_SIZE, page.limit()); | ||||
ByteBuffer bb = _bufH.getPageBuffer(_channel); | ByteBuffer bb = _bufH.getPageBuffer(_channel); | ||||
bb.clear(); | |||||
fullEncode(page.array(), bb.array(), pageNumber); | fullEncode(page.array(), bb.array(), pageNumber); | ||||
return bb; | return bb; | ||||
} | } |