[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[udig-devel] postRendering problem (bug??)
|
I'm getting a message (it's intermittent) in the status bar saying:
"Timed out while rendering this layer. Seems to have blocked, check that the
server is up"
I don't think it's a valid message, given my layer is rendering just fine.
I'm calling refresh from another thread (it's doing it safely) and the layer
is getting refreshed. I tracked down the message, and it seems that the
implementation of RenderExecutorComposite#CompositeRenderJob#postRendering()
is a little strange. If the IRenderer is not in the DONE state, then we get
the timeout message. Moving up the stack, I can't see how the IRenderer
lifecycle is appropriately managed.
Given this code: (RenderJob#run(IProgressMonitor))
getExecutor().getRenderer().setState(IRenderer.RENDERING);
try {
startRendering(bounds, monitor);
} catch (Throwable renderError) {
handleException(renderError);
getExecutor().getRenderer().setState(IRenderer.DONE);
return Status.OK_STATUS;
}
postRendering();
return Status.OK_STATUS;
The IRenderer may not get set to IRenderer.DONE.