<AWT Dev> [9] Review-request for 6353518: Creation of a WritableRaster with a custom DataBuffer causes erroneous Exception

Ajit Ghaisas ajit.ghaisas at oracle.com
Mon Mar 7 08:20:44 UTC 2016


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20160307/9227e908/attachment.html>


More information about the awt-dev mailing list