Author: michiel
Date: 2009-11-20 09:16:43 +0100 (Fri, 20 Nov 2009)
New Revision: 39814
Modified:
mmbase/trunk/applications/streams/src/main/java/org/mmbase/streams/createcaches/Job.java
mmbase/trunk/applications/streams/src/main/java/org/mmbase/streams/createcaches/JobCallable.java
Log:
Modified:
mmbase/trunk/applications/streams/src/main/java/org/mmbase/streams/createcaches/Job.java
===================================================================
---
mmbase/trunk/applications/streams/src/main/java/org/mmbase/streams/createcaches/Job.java
2009-11-20 08:04:31 UTC (rev 39813)
+++
mmbase/trunk/applications/streams/src/main/java/org/mmbase/streams/createcaches/Job.java
2009-11-20 08:16:43 UTC (rev 39814)
@@ -279,7 +279,6 @@
*/
public void submit(Cloud cloud, int n, ChainedLogger chain) {
JobCallable callable = new JobCallable(this, cloud, chain, n);
- callable.init();
submit(callable);
}
@@ -294,6 +293,7 @@
LOG.info("Will submit " + jc);
ThreadPools.jobsExecutor.execute(new Runnable() {
public void run() {
+ jc.init();
synchronized(Job.this) {
findResults();
if (getCurrent() == null) {
Modified:
mmbase/trunk/applications/streams/src/main/java/org/mmbase/streams/createcaches/JobCallable.java
===================================================================
---
mmbase/trunk/applications/streams/src/main/java/org/mmbase/streams/createcaches/JobCallable.java
2009-11-20 08:04:31 UTC (rev 39813)
+++
mmbase/trunk/applications/streams/src/main/java/org/mmbase/streams/createcaches/JobCallable.java
2009-11-20 08:16:43 UTC (rev 39814)
@@ -23,6 +23,9 @@
* This is the actual callable that can be submitted to the Executors.
* It can actually be submitted multiple times. Until it is ready.
*
+ * It will do that itself, if it detect that the {...@link Stage} of the job
would change.
+
+ *
* This boils down to iterating the {...@link Job}.
* @author Michiel Meeuwissen
*/
@@ -48,9 +51,13 @@
return thisJob;
}
+
+ /**
+ * Init will wait until the associated source node does actually exist.
+ * It will then also create the related mediafragment.
+ */
protected synchronized void init() {
if (ntNode == null) {
- thisJob.setThread(Thread.currentThread());
if (ntCloud instanceof
org.mmbase.bridge.implementation.BasicCloud) {
try {
synchronized(ntCloud) {
@@ -75,6 +82,7 @@
}
}
+
void waitForNode() throws InterruptedException {
synchronized(this) {
while(thisJob.getNode() == null) {
@@ -86,6 +94,7 @@
public Integer call() {
init();
+ thisJob.setThread(Thread.currentThread());
int resultCount = 0;
try {
Result result = thisJob.getCurrent();
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs