[
https://issues.apache.org/jira/browse/DERBY-2920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-2920:
--------------------------------------
Attachment: d2920-1a.diff
There are 23 implementations of readExternalFromArray(). 19 of them are
identical to the readExternal() method in the same class.
The attached patch adds a readExternalFromArray() method to the DataType class,
which is a common base class for all the classes that implement
readExternalFromArray(). The new method simply forwards calls to readExternal().
The patch also removes the 19 readExternalFromArray() methods that are
identical to readExternal(), as they would work correctly by inheriting the
method from DataType. The four classes that have optimized implementations that
are not identical to readExternal(), keep their current implementations.
The four classes that have optimized versions of readExternalFromArray(), are
SQLChar, SQLClob, XML and HeapRowLocation.
All the regression tests passed with the patch.
> Share code between readExternal() and readExternalFromArray()
> -------------------------------------------------------------
>
> Key: DERBY-2920
> URL: https://issues.apache.org/jira/browse/DERBY-2920
> Project: Derby
> Issue Type: Improvement
> Components: Services, SQL
> Reporter: Knut Anders Hatlen
> Priority: Minor
> Labels: derby_triage10_10
> Attachments: d2920-1a.diff
>
>
> Most of the implementations of
> DataValueDescriptor.readExternalFromArray(ArrayInputStream) are identical to
> their corresponding Externalizable.readExternal(ObjectInput) methods. Since
> ArrayInputStream implements ObjectInput, readExternalFromArray() could in
> those cases just have forwarded calls to readExternal() instead of
> duplicating the code. A default forwarding implementation of
> readExternalFromArray() could be placed in
> org.apache.derby.iapi.types.DataType, and all the existing implementations,
> except those with optimizations for ArrayInputStream, could be removed.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira