Rafael,

Thanks for those links. I see your point.

On 24/09/2007, Rafael Schloming <[EMAIL PROTECTED]> wrote:
>
> Rafael Schloming wrote:
> > Rupert Smith wrote:
> >> On 24/09/2007, Rafael Schloming <[EMAIL PROTECTED]> wrote:
> >>> So if we were to fix AMQShortString to just use bulk put/get
> operations
> >>> all the time then the only issue is whether it is possible to
> implement
> >>> an aggregating ByteBuffer with efficient bulk put/get operations, and
> >>> the answer to this question depends entirely on the details of the
> >>> internal implementation of the various nio Buffer classes, which
> likely
> >>> means it is impossible to do without tying yourself to a specific JDK
> >>> implementation.
> >>>
> >>
> >> Its an aggregator, so bulk operations just map down onto the bulk
> >> operations
> >> of the aggregated buffers underneath it. So if a bulk get overlaps two
> >> buffers underneath, the get it split into two calls, one to fetch the
> >> relevant bit from each of the underlying buffers.
> >
> > Yes, this is exactly what FragmentDecoder does.
> >
> > I don't follow where the
> >> JDK specific part comes from?
> >
> > The JDK specific part comes in trying to do this as a subclass of
> > ByteBuffer. The various buffer implementations in the java.nio package
> > share internal implementations via package protected members and code.
> > In order to be able to create a subclass of ByteBuffer you would need to
> > obey all the various package protected contracts. These contracts are
> > implementation details of the JDK and may change between releases.
> >
> > A quick google on "extending ByteBuffer" also reveals the issues
> > mentioned here:
> >
> > http://forum.java.sun.com/thread.jspa?threadID=693259&messageID=4028590
> >
> > Basically ByteBuffer, although not final, has entirely private
> > constructors. This prevents it from being extend from outside the
> > java.nio package.
>
> This link would also seem to indicate that there is no intention to ever
> make ByteBuffer extensible:
>
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4712383
>
> --Rafael
>

Reply via email to