deweese 2003/11/03 03:58:27 Modified: . build.xml sources/org/apache/batik/swing/svg JSVGComponent.java Log: 1) Another try at fixing the race condition in setSVGDocument. Revision Changes Path 1.144 +2 -2 xml-batik/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/xml-batik/build.xml,v retrieving revision 1.143 retrieving revision 1.144 diff -u -r1.143 -r1.144 --- build.xml 1 Oct 2003 13:19:33 -0000 1.143 +++ build.xml 3 Nov 2003 11:58:27 -0000 1.144 @@ -938,7 +938,7 @@ <pathelement location="resources" /> </classpath> <arg line="${args}"/> - <!-- <jvmarg value="-Xmx512m"/> <jvmarg value="-Xms64m"/> --> + <jvmarg value="-Xmx512m"/> <jvmarg value="-Xms64m"/> <!-- <jvmarg value="-Djava.security.debug=all"/> <jvmarg value="-verbose" /> --> <!-- 1.90 +97 -96 xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java Index: JSVGComponent.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java,v retrieving revision 1.89 retrieving revision 1.90 diff -u -r1.89 -r1.90 --- JSVGComponent.java 3 Nov 2003 11:12:43 -0000 1.89 +++ JSVGComponent.java 3 Nov 2003 11:58:27 -0000 1.90 @@ -607,109 +607,14 @@ } if (documentLoader != null) { - documentLoader.addSVGDocumentLoaderListener - (new SVGDocumentLoaderAdapter() { - SVGDocumentLoader sdl = documentLoader; - public void documentLoadingCompleted - (SVGDocumentLoaderEvent e) { install(); } - public void documentLoadingCancelled - (SVGDocumentLoaderEvent e) { install(); } - public void documentLoadingFailed - (SVGDocumentLoaderEvent e) { install(); } - public void install() { - // Remove ourselves from the doc loader, - // and install the new document. - sdl.removeSVGDocumentLoaderListener(this); - synchronized (JSVGComponent.this) { - EventQueue.invokeLater(afterStopRunnable); - afterStopRunnable = null; - } - } - }); stopProcessing(); } else if (gvtTreeBuilder != null) { - gvtTreeBuilder.addGVTTreeBuilderListener - (new GVTTreeBuilderAdapter() { - GVTTreeBuilder gtb = gvtTreeBuilder; - public void gvtBuildCompleted - (GVTTreeBuilderEvent e) { install(); } - public void gvtBuildCancelled - (GVTTreeBuilderEvent e) { install(); } - public void gvtBuildFailed - (GVTTreeBuilderEvent e) { install(); } - public void install() { - // Remove ourselves from the old tree builder, - // and install the new document. - gtb.removeGVTTreeBuilderListener(this); - synchronized (JSVGComponent.this) { - EventQueue.invokeLater(afterStopRunnable); - afterStopRunnable = null; - } - } - }); stopProcessing(); } else if (updateManager != null) { - // We have to wait for the update manager to stop - // before we install the new document otherwise bad - // things can happen with the update manager. - addUpdateManagerListener(new UpdateManagerAdapter () { - public void managerStopped(UpdateManagerEvent e) { - // Remove ourselves and install the new document. - JSVGComponent.this.removeUpdateManagerListener(this); - synchronized (JSVGComponent.this) { - EventQueue.invokeLater(afterStopRunnable); - afterStopRunnable = null; - } - } - }); stopProcessing(); } else if (nextUpdateManager != null) { - // We have to wait for the rendering to stop - // before we install the new document. - gvtTreeRenderer.addGVTTreeRendererListener - (new GVTTreeRendererAdapter() { - GVTTreeRenderer gtr = gvtTreeRenderer; - public void gvtRenderingCompleted - (GVTTreeRendererEvent e) { install(); } - public void gvtRenderingCancelled - (GVTTreeRendererEvent e) { install(); } - public void gvtRenderingFailed - (GVTTreeRendererEvent e) { install(); } - - public void install() { - // Remove ourselves from the old update manger, - // and install the new document. - gtr.removeGVTTreeRendererListener(this); - synchronized (JSVGComponent.this) { - EventQueue.invokeLater(afterStopRunnable); - afterStopRunnable = null; - } - } - }); stopProcessing(); } else if (svgLoadEventDispatcher != null) { - // We have to wait for the onload dispatch to stop - // before we install the new document. - svgLoadEventDispatcher.addSVGLoadEventDispatcherListener - (new SVGLoadEventDispatcherAdapter() { - SVGLoadEventDispatcher sled = svgLoadEventDispatcher; - public void svgLoadEventDispatchCompleted - (SVGLoadEventDispatcherEvent e) { install(); } - public void svgLoadEventDispatchCancelled - (SVGLoadEventDispatcherEvent e) { install(); } - public void svgLoadEventDispatchFailed - (SVGLoadEventDispatcherEvent e) { install(); } - - public void install() { - // Remove ourselves from the old onload dispacher - // and install the new document. - sled.removeSVGLoadEventDispatcherListener(this); - synchronized (JSVGComponent.this) { - EventQueue.invokeLater(afterStopRunnable); - afterStopRunnable = null; - } - } - }); stopProcessing(); } else { stopProcessing(); @@ -1288,6 +1193,12 @@ } documentLoader = null; + if (afterStopRunnable != null) { + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } + setSVGDocument(e.getSVGDocument()); } @@ -1301,6 +1212,11 @@ } documentLoader = null; + if (afterStopRunnable != null) { + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } if (nextGVTTreeBuilder != null) { startGVTTreeBuilder(); @@ -1321,6 +1237,11 @@ userAgent.displayError(((SVGDocumentLoader)e.getSource()). getException()); + if (afterStopRunnable != null) { + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } if (nextGVTTreeBuilder != null) { startGVTTreeBuilder(); return; @@ -1349,6 +1270,13 @@ loader = null; gvtTreeBuilder = null; + + if (afterStopRunnable != null) { + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } + if (nextDocumentLoader != null) { startDocumentLoader(); return; @@ -1399,6 +1327,13 @@ loader = null; gvtTreeBuilder = null; + + if (afterStopRunnable != null) { + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } + if (nextDocumentLoader != null) { startDocumentLoader(); return; @@ -1418,6 +1353,13 @@ loader = null; gvtTreeBuilder = null; + + if (afterStopRunnable != null) { + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } + if (nextDocumentLoader != null) { startDocumentLoader(); return; @@ -1456,6 +1398,15 @@ nextUpdateManager = svgLoadEventDispatcher.getUpdateManager(); svgLoadEventDispatcher = null; + if (afterStopRunnable != null) { + nextUpdateManager.interrupt(); + nextUpdateManager = null; + + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } + if (nextGVTTreeBuilder != null) { nextUpdateManager.interrupt(); nextUpdateManager = null; @@ -1486,6 +1437,12 @@ nextUpdateManager.interrupt(); nextUpdateManager = null; + if (afterStopRunnable != null) { + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } + if (nextGVTTreeBuilder != null) { startGVTTreeBuilder(); return; @@ -1507,6 +1464,12 @@ nextUpdateManager.interrupt(); nextUpdateManager = null; + if (afterStopRunnable != null) { + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } + if (nextGVTTreeBuilder != null) { startGVTTreeBuilder(); return; @@ -1537,6 +1500,16 @@ public void gvtRenderingCompleted(GVTTreeRendererEvent e) { super.gvtRenderingCompleted(e); + if (afterStopRunnable != null) { + if (nextUpdateManager != null) { + nextUpdateManager.interrupt(); + nextUpdateManager = null; + } + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } + if (nextGVTTreeBuilder != null) { if (nextUpdateManager != null) { nextUpdateManager.interrupt(); @@ -1568,6 +1541,17 @@ public void gvtRenderingCancelled(GVTTreeRendererEvent e) { super.gvtRenderingCancelled(e); + if (afterStopRunnable != null) { + if (nextUpdateManager != null) { + nextUpdateManager.interrupt(); + nextUpdateManager = null; + } + + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } + if (nextGVTTreeBuilder != null) { if (nextUpdateManager != null) { nextUpdateManager.interrupt(); @@ -1593,6 +1577,17 @@ public void gvtRenderingFailed(GVTTreeRendererEvent e) { super.gvtRenderingFailed(e); + if (afterStopRunnable != null) { + if (nextUpdateManager != null) { + nextUpdateManager.interrupt(); + nextUpdateManager = null; + } + + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; + } + if (nextGVTTreeBuilder != null) { if (nextUpdateManager != null) { nextUpdateManager.interrupt(); @@ -1687,6 +1682,12 @@ ((UpdateManagerListener)dll[i]). managerStopped(e); } + } + + if (afterStopRunnable != null) { + EventQueue.invokeLater(afterStopRunnable); + afterStopRunnable = null; + return; } if (nextGVTTreeBuilder != null) {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]