Index: bundled/java/java/src/de/tuberlin/polymake/common/PolymakeStaticControl.java =================================================================== --- bundled/java/java/src/de/tuberlin/polymake/common/PolymakeStaticControl.java (revision a9c7a1f3d0d53bbf515cdc8c19d1b7b11a9e981b) +++ bundled/java/java/src/de/tuberlin/polymake/common/PolymakeStaticControl.java (revision febdb20fd3c2867e3dfc8441047ec2be324730e4) @@ -17,6 +17,7 @@ package de.tuberlin.polymake.common; +import java.awt.EventQueue; import java.io.BufferedReader; import java.io.IOException; import java.nio.channels.Pipe; @@ -34,12 +35,18 @@ GeometryParserIf gp) throws IOException { super(psReader, clientReader, sink, gp); - - PolymakeFrame geomFrame = createFrame(geometry.getName()); - frameMap.put(geometry.getName(), geomFrame); -// System.err.println("encompass"); - geomFrame.encompass(); - geomFrame.setVisible(true); + EventQueue.invokeLater(new Runnable() { + + @Override + public void run() { + PolymakeFrame geomFrame = createFrame(geometry.getName()); + frameMap.put(geometry.getName(), geomFrame); +// System.err.println("encompass"); + geomFrame.encompass(); + geomFrame.setVisible(true); + } + }); + } public void update() throws IOException { Index: bundled/java/java/src/de/tuberlin/polymake/graph/PolymakeSpringEmbedderControl.java =================================================================== --- bundled/java/java/src/de/tuberlin/polymake/graph/PolymakeSpringEmbedderControl.java (revision a9c7a1f3d0d53bbf515cdc8c19d1b7b11a9e981b) +++ bundled/java/java/src/de/tuberlin/polymake/graph/PolymakeSpringEmbedderControl.java (revision febdb20fd3c2867e3dfc8441047ec2be324730e4) @@ -16,6 +16,7 @@ package de.tuberlin.polymake.graph; +import java.awt.EventQueue; import java.awt.Frame; import java.io.BufferedReader; import java.io.IOException; @@ -75,30 +76,38 @@ if (!(frameMap.containsKey(geometry.getEmbedding().getName())) || !(((PolymakeSpringEmbedderFrame) frameMap.get(geometry .getEmbedding().getName())).isDisplayable())) { - PolymakeFrame tmpFrame = createFrame(geometry.getEmbedding() - .getName()); - tmpFrame - .update(geometry.getEmbedding(), parser.getParameters()); - frameMap.put(geometry.getName(), tmpFrame); - tmpFrame.encompass(); - tmpFrame.setVisible(true); + EventQueue.invokeLater(new Runnable() { + + @Override + public void run() { + PolymakeFrame tmpFrame = createFrame(geometry.getEmbedding().getName()); + tmpFrame.update(geometry.getEmbedding(), parser.getParameters()); + frameMap.put(geometry.getName(), tmpFrame); + tmpFrame.encompass(); + tmpFrame.setVisible(true); + } + }); } else { - PolymakeSpringEmbedderFrame tmpFrame = (PolymakeSpringEmbedderFrame) frameMap - .get(geometry.getName()); - if (tmpFrame.isVisible() - || tmpFrame.getState() == Frame.ICONIFIED) { - tmpFrame.setState(Frame.NORMAL); - } - tmpFrame.setVisible(true); - if (parser.getWarning() != null) { - tmpFrame.setStatus(parser.getWarning()); - } else { - if (parser.getError() != null) { - tmpFrame.setStatus(parser.getError()); + final PolymakeSpringEmbedderFrame tmpFrame = (PolymakeSpringEmbedderFrame) frameMap.get(geometry.getName()); + EventQueue.invokeLater(new Runnable() { + + @Override + public void run() { + if (tmpFrame.isVisible() + || tmpFrame.getState() == Frame.ICONIFIED) { + tmpFrame.setState(Frame.NORMAL); + } + tmpFrame.setVisible(true); + if (parser.getWarning() != null) { + tmpFrame.setStatus(parser.getWarning()); + } else { + if (parser.getError() != null) { + tmpFrame.setStatus(parser.getError()); + } + } + tmpFrame.update(geometry.getEmbedding(), parser.getParameters()); } - } - tmpFrame.update(geometry.getEmbedding(), parser.getParameters()); - + }); } } catch (SharedMemoryMatrixException e) { e.printStackTrace(SelectorThread.newErr); Index: bundled/java/java/src/de/tuberlin/polymake/polytope/PolymakeSchlegelControl.java =================================================================== --- bundled/java/java/src/de/tuberlin/polymake/polytope/PolymakeSchlegelControl.java (revision a9c7a1f3d0d53bbf515cdc8c19d1b7b11a9e981b) +++ bundled/java/java/src/de/tuberlin/polymake/polytope/PolymakeSchlegelControl.java (revision febdb20fd3c2867e3dfc8441047ec2be324730e4) @@ -16,6 +16,7 @@ package de.tuberlin.polymake.polytope; +import java.awt.EventQueue; import java.awt.Frame; import java.io.BufferedReader; import java.io.IOException; @@ -68,28 +69,42 @@ if (!(frameMap.containsKey(geometry.getEmbedding().getName())) || !(((PolymakeSchlegelFrame) frameMap.get(geometry .getEmbedding().getName())).isDisplayable())) { - PolymakeFrame tmpFrame = createFrame(geometry.getEmbedding() - .getName()); - frameMap.put(geometry.getEmbedding().getName(), tmpFrame); - tmpFrame.update(geometry.getEmbedding(), parser.getParameters()); - tmpFrame.encompass(); - tmpFrame.setVisible(true); + Runnable r = new Runnable() { + + @Override + public void run() { + PolymakeFrame tmpFrame = createFrame(geometry.getEmbedding() + .getName()); + frameMap.put(geometry.getEmbedding().getName(), tmpFrame); + tmpFrame.update(geometry.getEmbedding(), parser.getParameters()); + tmpFrame.encompass(); + tmpFrame.setVisible(true); + } + }; + + EventQueue.invokeLater(r); } else { - PolymakeSchlegelFrame tmpFrame = (PolymakeSchlegelFrame) frameMap + final PolymakeSchlegelFrame tmpFrame = (PolymakeSchlegelFrame) frameMap .get(geometry.getEmbedding().getName()); - if (tmpFrame.isVisible() - || tmpFrame.getState() == Frame.ICONIFIED) { - tmpFrame.setState(Frame.NORMAL); - } - tmpFrame.setVisible(true); - if (parser.getError() != null) { - tmpFrame.setStatus(parser.getError()); - } - if (parser.getWarning() != null) { - tmpFrame.setStatus(parser.getWarning()); - } - tmpFrame.update(geometry.getEmbedding(), - parser.getParameters(), parser.getError() != null); + EventQueue.invokeLater(new Runnable() { + @Override + public void run() { + if (tmpFrame.isVisible() + || tmpFrame.getState() == Frame.ICONIFIED) { + tmpFrame.setState(Frame.NORMAL); + } + tmpFrame.setVisible(true); + if (parser.getError() != null) { + tmpFrame.setStatus(parser.getError()); + } + if (parser.getWarning() != null) { + tmpFrame.setStatus(parser.getWarning()); + } + tmpFrame.update(geometry.getEmbedding(), + parser.getParameters(), parser.getError() != null); + + } + }); } } catch (SharedMemoryMatrixException e) { e.printStackTrace(SelectorThread.newErr); Index: bundled/jreality/java/src/de/tuberlin/polymake/common/jreality/BshParser.java =================================================================== --- bundled/jreality/java/src/de/tuberlin/polymake/common/jreality/BshParser.java (revision a9c7a1f3d0d53bbf515cdc8c19d1b7b11a9e981b) +++ bundled/jreality/java/src/de/tuberlin/polymake/common/jreality/BshParser.java (revision febdb20fd3c2867e3dfc8441047ec2be324730e4) @@ -54,12 +54,10 @@ } }; - Thread bshThread = new Thread(runner); + Thread bshThread = new Thread(runner,"BSH Reader thread"); - synchronized (sgc) { - bshThread.start(); - sgc.wait(); - } + bshThread.start(); + bshThread.join(); sgc = sgc.getChildComponent(0); title = sgc.getName();