[ 
https://issues.apache.org/jira/browse/HBASE-16613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Yu updated HBASE-16613:
---------------------------
    Summary: Return the unused ByteBuffer to BoundedByteBufferPool when no cell 
is retrieved from the CellScanner  (was: Return the unused ByteBuffer to 
BoundedByteBufferPool when no cell is got from the CellScanner)

> Return the unused ByteBuffer to BoundedByteBufferPool when no cell is 
> retrieved from the CellScanner
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-16613
>                 URL: https://issues.apache.org/jira/browse/HBASE-16613
>             Project: HBase
>          Issue Type: Bug
>            Reporter: ChiaPing Tsai
>            Assignee: ChiaPing Tsai
>             Fix For: 1.3.0, 1.4.0, 1.2.4
>
>         Attachments: HBASE-16613.branch-1.v0.patch, 
> HBASE-16613.branch-1.v1.patch, HBASE-16613.branch-1.v1.patch
>
>
> The critical code is shown below:
> {code:title=IPCUtil.java|borderStyle=solid}
> // We should put the ByteBuffer into pool before return null
>   public ByteBuffer buildCellBlock(final Codec codec, final CompressionCodec 
> compressor,
>     final CellScanner cellScanner, final BoundedByteBufferPool pool) {
>   ...
>   if (pool != null) {
>       ByteBuffer bb = pool.getBuffer();
>       bufferSize = bb.capacity();
>       baos = new ByteBufferOutputStream(bb);
>   }
>   ...
>       int count = 0;
>       while (cellScanner.advance()) {
>         encoder.write(cellScanner.current());
>         count++;
>       }
>       encoder.flush();
>       if (count == 0) return null;
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to