[OpenJDK 2D-Dev] [PATCH] 4494651: Wrong width and height in BufferedImage GraphicsConfiguration objects
Dmitri Trembovetski
Dmitri.Trembovetski at Sun.COM
Wed Feb 18 02:13:47 UTC 2009
Note that this fix may have some performance
implications for cases when there are caches based on the
graphics configuration of the Graphics object used for
rendering - these caches may grow uncontrollably.
I don't know of any other solution for this bug, but I'm
not sure fixing it would do more harm than good.
The bug has only 3 votes after 8 years (all of them
in 2001-2002)..
Thanks,
Dmitri
Torsten Landschoff wrote:
> Hello List,
>
> A few days before I ran into bug 4494651, after more than 7 years of its
> existence. See
>
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4494651
>
> I was curious how hard it would be to build a fixed OpenJDK, so I spent
> half of the saturday to get OpenJDK build and its unit tests running.
>
> Turned out that it wasn't that hard so here are my changes for you to
> consider.
>
> The first diff contains a trivial unit test derived from the example code
> in the bug log. The code should speak for itself.
>
> Tracing the bug to its origin, I found the interesting lookup table in
> BufferedImageGraphicsConfig.java which maps each imageType supported by
> BufferedImage to a BufferedImageGraphicsConfig. I have no idea why that
> would be a good idea (apart from performance), so the second diff just
> removes that feature and creates a new graphics configuration each time
> it is requested.
>
> As the only reason why one would create such a lookup table would be to
> get around performance problems, I wrote a third patch which caches
> the graphics configurations already retrieved in a weak hash map.
>
> Comments welcome. Feel free to apply my code to the OpenJDK code base,
> I'd be glad to sign the Sun Contributor Agreement if needed for such
> a trivial contribution.
>
>
> Thanks for all your work, I really enjoy working with Java (and even
> more with its virtual machine and great libraries).
>
> Greetings, Torsten
>
More information about the 2d-dev
mailing list