Hi, this is a small patch to the FlipBufferStrategy class which lives inside Component. I do not fully understand how it should work and how the implementation is supposed to work and therefore simply fixed the apparent issue: When someone requests a real (# of buffers > 1) back buffer strategy the drawVBuffer field is not initialized and NPEs are thrown on access.
I prevented these exceptions and implemented getGraphics in a way that actual painting will be visible. Comments? No ChangeLog so far as I am waiting for input from others. cya Robert
Index: java/awt/Component.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/Component.java,v
retrieving revision 1.120
diff -u -r1.120 Component.java
--- java/awt/Component.java 4 Jun 2006 20:21:39 -0000 1.120
+++ java/awt/Component.java 6 Jun 2006 08:07:43 -0000
@@ -6332,7 +6332,7 @@
*/
public Graphics getDrawGraphics()
{
- return drawVBuffer.getGraphics();
+ return (drawVBuffer != null) ? drawVBuffer.getGraphics() : peer.getGraphics();
}
/**
@@ -6357,7 +6357,7 @@
*/
public boolean contentsLost()
{
- if (drawVBuffer.contentsLost())
+ if (drawVBuffer != null && drawVBuffer.contentsLost())
{
validatedContents = false;
return true;
signature.asc
Description: OpenPGP digital signature
