Kevin Brown wrote:
This is happening when there are no <Require> features, not when there is
nothing in the content section. It appears to be happening somewhere in
GadgetFeatureRegistry.getIncludedFeatures and / or the main gadget server
loop, but so far I haven't been able to come up with a test that reproduces
the behavior, and debugging the servlets directly is a pain.
Ok, here's what I found so far. You may already know this, but maybe it
will help.
In GadgetServer.processGadget(), we get to this block:
// Fire off ready jobs and remove from jobsToRun list
for (WorkflowJob runJob : runThisCycle) {
processor.submit(runJob.task);
jobsSubmitted++;
wc.jobsToRun.remove(runJob);
}
the third time through, the task that is submitted is an instance of
EnqueueFeaturesTask.
Then we get here, and take() blocks forever:
// Wait around for at least one job to have completed.
// Completion of a job results in an additional dep
added to
// wc.depsDone,
// thus potentially freeing up other jobs to run
Future<GadgetException> latestResult = null;
GadgetException gadgetException = null;
try
{
latestResult = processor.take();
}
catch (InterruptedException e) {
gadgetException = new GadgetException(
GadgetException.Code.INTERNAL_SERVER_ERROR, e);
}
So, it looks like something weird is going on in
EnqueueFeaturesTask.run() that is preventing it from finishing.
TTYL,
--
Phillip Rhodes
Chief Architect - OpenQabal
https://openqabal.dev.java.net
LinkedIn: http://www.linkedin.com/in/philliprhodes