Author: kono
Date: 2011-05-10 11:16:01 -0700 (Tue, 10 May 2011)
New Revision: 24997
Modified:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
Log:
Fixed infinite loop problem.
Modified:
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
===================================================================
---
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
2011-05-10 18:10:08 UTC (rev 24996)
+++
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
2011-05-10 18:16:01 UTC (rev 24997)
@@ -48,6 +48,8 @@
import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.CyNetworkViewFactory;
+import org.cytoscape.work.Task;
+import org.cytoscape.work.TaskIterator;
import org.cytoscape.work.TaskMonitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -66,6 +68,8 @@
private final CyEventHelper eventHelper;
private final CyLayoutAlgorithmManager layouts;
+
+ private TaskMonitor parentTaskMonitor;
public SIFNetworkReader(InputStream is, CyLayoutAlgorithmManager
layouts,
CyNetworkViewFactory cyNetworkViewFactory,
CyNetworkFactory cyNetworkFactory,
@@ -88,6 +92,7 @@
}
private void readInput(TaskMonitor tm) throws IOException {
+ this.parentTaskMonitor = tm;
tm.setProgress(0.0);
String line;
@@ -175,8 +180,14 @@
final CyLayoutAlgorithm layout = layouts.getDefaultLayout();
layout.setNetworkView(view);
- // FIXME: this causes infinite loop...Why?
- //insertTasksAfterCurrentTask(layout.getTaskIterator());
+ // Force to run this task here to avoid concurrency problem.
+ TaskIterator itr = layout.getTaskIterator();
+ Task nextTask = itr.next();
+ try {
+ nextTask.run(parentTaskMonitor);
+ } catch (Exception e) {
+ throw new RuntimeException("Could not finish layout",
e);
+ }
return view;
}
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.