You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by dv...@apache.org on 2007/02/08 09:40:19 UTC

svn commit: r504822 - /xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java

Author: dvholten
Date: Thu Feb  8 00:40:18 2007
New Revision: 504822

URL: http://svn.apache.org/viewvc?view=rev&rev=504822
Log:
fix spurious ArrayIndexOutOfBoundsException

Modified:
    xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java?view=diff&rev=504822&r1=504821&r2=504822
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java Thu Feb  8 00:40:18 2007
@@ -72,7 +72,7 @@
     static int duration = 3000;
     static int frameDelay = duration+7000;
 
-    boolean done = false;
+    volatile boolean done = false;
 
     public Main(File []files, Dimension size) {
         setBackground(Color.black);
@@ -117,6 +117,11 @@
     }
 
     class RenderThread extends Thread {
+        RenderThread(){
+            super("RenderThread");
+            setDaemon( true );
+        }
+
         public void run() {
             renderer.setDoubleBuffered(true);
             for (int i=0; i<files.length; i++) {
@@ -124,12 +129,12 @@
                 GVTBuilder builder = new GVTBuilder();
 
                 try {
-                    System.out.println("Reading: " + files[i]);
-                    Document svgDoc = loader.loadDocument
-                        (files[i].toURL().toString());
-                    System.out.println("Building: " + files[i]);
+                    String fileName = files[ i ].toURL().toString();
+                    System.out.println("Reading: " + fileName );
+                    Document svgDoc = loader.loadDocument( fileName );
+                    System.out.println("Building: " + fileName );
                     gvtRoot = builder.build(ctx, svgDoc);
-                    System.out.println("Rendering: " + files[i]);
+                    System.out.println("Rendering: " + fileName );
                     renderer.setTree(gvtRoot);
 
                     Element elt = ((SVGDocument)svgDoc).getRootElement();
@@ -145,9 +150,10 @@
                                                 display.getWidth(),
                                                 display.getHeight());
                     renderer.repaint(r);
-                    System.out.println("Painting: " + files[i]);
+                    System.out.println("Painting: " + fileName );
                     image = renderer.getOffScreen();
                     setTransition(image);
+
                 } catch (Exception ex) {
                     ex.printStackTrace();
                 }
@@ -159,6 +165,7 @@
                 done = true;
                 setCursor(new Cursor(Cursor.WAIT_CURSOR));
             }
+
         }
     }
 
@@ -205,6 +212,8 @@
         int blockh = 75;
 
         public TransitionThread(BufferedImage bi) {
+            super( "TransitionThread");
+            setDaemon( true );
             src = bi;
         }
 
@@ -250,7 +259,7 @@
             for (int i=0; i<rects.length; i++) {
                 int idx = (int)(Math.random()*(rects.length-i));
                 Point pt = rects[idx];
-                System.arraycopy( rects, idx + 1, rects, idx + 1 - 1, rects.length - i - idx + 1 );
+                System.arraycopy( rects, idx + 1, rects, idx + 1 - 1, rects.length - i - idx -1 );  // +1??
                 int x=pt.x*blockw, y=pt.y*blockh;
                 int w=blockw, h = blockh;
                 if (x+w > src.getWidth())  w = src.getWidth()-x;
@@ -279,6 +288,7 @@
                 Main.this.notifyAll();
             }
         }
+
     }
 
     public void paint(Graphics g) {