[OpenJDK 2D-Dev] [9] Review-request for 6353518: Creation of a WritableRaster with a custom DataBuffer causes erroneous Exception

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Wed Mar 9 10:36:15 UTC 2016


Changes for 2d area.(cc)


On 07.03.16 11:20, Ajit Ghaisas wrote:
> Hi,
>
> Bug : https://bugs.openjdk.java.net/browse/JDK-6353518
>
> Issue : (Text from bug description)
>
> An attempt to create a WritableRaster via
> Raster.createWritableRaster(SampleModel sm, DataBuffer db, Point
> location) using a custom DataBuffer causes an erroneous
> RasterFormatException.
> Apparently the reason for this bug is that IntegerComponentRaster
> insists on being passed an instance of DataBufferInt rather than just a
> DataBuffer with a DataType of TYPE_INT.
> This is quite annoying since DataBufferInt is declared final and thus
> cannot be extended.
>
> Fix :
>
> The last line of Raster.createWritableRaster() method already has a way
> to handle generic case if the input does not match any of the cases in
> switch statements in that method.
>
> The fact that  “ *InterleavedRaster() constructors throw exception if
> DataBuffer passed to them does not match the expected type” was ignored
> earlier.
>
> This fix adds a check of “DataBuffer type” before creating respective
> *InterleavedRaster() objects.
>
> It constructs the SunWritableRaster in case DataBuffer type does not
> match any data specific DataBuffer classes (DataBufferByte,
> DataBufferUShort, DataBufferInt)
>
> Request to review webrev containing this fix :
>
> http://cr.openjdk.java.net/~arapte/ajit/6353518/webrev.00/
>
> Regards,
>
> Ajit
>


-- 
Best regards, Sergey.



More information about the 2d-dev mailing list