[ 
https://issues.apache.org/jira/browse/LUCENE-2084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12794636#action_12794636
 ] 

Uwe Schindler commented on LUCENE-2084:
---------------------------------------

In my opinion in the committed patch and also before there is an error in 
handling the ByteBuffer/CharBuffer arrayOffset() value. It calculated the 
length using limit()-arrayOffset() which is wrong. The length available in the 
buffer is simple remaining() - this is how all other encoders/decoders in the 
JDK work (see src). array() and arrayOffset() simply give the offset of the 
wrapped array, but do not say anything about the length. The starting position 
to decode must be also customized and is arrayOffset()+position() - The code 
fails, if you wrap an array with offset!=0 and some length or if you pass an 
not 0-positioned buffer. 

For correct usage of NIO Buffers see my latest improvements in the 
payload.IdentityEncoder (issue LUCENE-2157). Any code getting a buffer for 
encoding/decoding should assume, that it should read from the buffer starting 
at postion(), reading remaining() items.

> remove Byte/CharBuffer wrapping for collation key generation
> ------------------------------------------------------------
>
>                 Key: LUCENE-2084
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2084
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: contrib/*
>            Reporter: Robert Muir
>            Assignee: Robert Muir
>            Priority: Minor
>             Fix For: 3.1
>
>         Attachments: collation.benchmark.tar.bz2, LUCENE-2084.patch, 
> LUCENE-2084.patch, TopTFWikipediaWords.tar.bz2
>
>
> We can remove the overhead of ByteBuffer and CharBuffer wrapping in 
> CollationKeyFilter and ICUCollationKeyFilter.
> this patch moves the logic in IndexableBinaryStringTools into char[],int,int 
> and byte[],int,int based methods, with the previous Byte/CharBuffer methods 
> delegating to these.
> Previously, the Byte/CharBuffer methods required a backing array anyway.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to