[
https://issues.apache.org/jira/browse/DERBY-2936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-2936:
--------------------------------------
Attachment: derby-2936-4.diff
Attaching a patch (derby-2936-4) which removes the DDMWriter.bytes field
entirely. This patch
- removes the field "bytes"
- updates comments which contain references to the old field
- makes endDdm() use ByteBuffer.put(byte[],int,int) instead of
System.arraycopy()
- makes writeScalarStream() use buffer.array() instead of the old field
- removes unused variables and narrows the scope of others in
writeScalarStream()
Derbyall and suites.All ran cleanly.
> Use java.nio.ByteBuffer for buffering in DDMWriter
> --------------------------------------------------
>
> Key: DERBY-2936
> URL: https://issues.apache.org/jira/browse/DERBY-2936
> Project: Derby
> Issue Type: Improvement
> Components: Network Server
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Priority: Minor
> Fix For: 10.4.0.0
>
> Attachments: d2936-1.diff, derby-2936-2.diff, derby-2936-2.stat,
> derby-2936-3.diff, derby-2936-3.stat, derby-2936-4.diff
>
>
> org.apache.derby.impl.drda.DDMWriter uses a byte array as a buffer. Wrapping
> the array in a java.nio.ByteBuffer has some advantages, for instance:
> - utility methods for encoding primitive types into the byte array could be
> used instead of manually encoding the values
> - it allows us to encode strings directly into the buffer (using a
> CharsetEncoder) without doing an expensive String.getBytes(String encoding)
> in an intermediate step
> By using a utility class, the code becomes easier to maintain. Also,
> ByteBuffer allows us to access the backing byte array without going through
> the ByteBuffer interface, so we still have the possibility to modify the byte
> array directly in cases where that's more convenient.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.