Hello,
I wonder if this error sounds familiar to you.. I have been getting it often
when rendering WFS layers in uDig, and I cannot find anything on google.
Sometimes It happens, and sometimes not, it is intermitent, but when it
happens, at least one of the wfs layers is not rendered and I have to click
the refresh button to get it rendered. As a workaround I can programatically
refresh all the layers once the last one is loaded (I check this with the
layerInterceptor), but It would be good to know why is really happening.
I have started my application from the RCP sample, so in the mapviewer class I
add 10 WFS layers as follows. (If I just add one layer it does not happen
usually, I guess the error comes because I am adding serveral layers, is there
any better way to do this?):
MapView.java
.........
// create a new empty map
// if you are going to add layers do so now
// prior to adding to the mapviewer
//
map = (Map) ProjectFactory.eINSTANCE.createMap();
LayersUtil.AddLayersToMap(map);
mapviewer.setMap(map);
.........
LayersUtil.java:
public static void AddLayersToMap(final Map map) {
List<ILayer> layers = createMapLayers();
map.sendCommandASync(new AddLayersCommand(layers));
}
public static void createMapLayers(){
List<ILayer> layers = new ArrayList<ILayer>();
URL url = new URL(MAPSERVER_GETCAPABILITIES_WFS);
IServer handle = catalog.acquire(url, null);
if (handle != null) {
List<IGeoResource> resources = (List<IGeoResource>)
handle.resources(new NullProgressMonitor());
for (IGeoResource resource : resources) {
String
layerId=resource.getIdentifier().toString();
if
(layerId.equals(MAPSERVER_GETCAPABILITIES_WFS + "#"+GEORESOURCE_POSITION_REAL)
) {
Layer
layer=layerFactory.createLayer(resource);
layers.add(layer);
}
else if (layerId.equals(.....
....
}
}
}
This is what I get:
17-may-2011 17:18:34 org.geotools.renderer.lite.StreamingRenderer fireErrorEvent
GRAVE: Unable to find function geometryType
java.lang.RuntimeException: Unable to find function geometryType
at
org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:103)
at
org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:69)
at
org.geotools.filter.FilterFactoryImpl.function(FilterFactoryImpl.java:469)
at
org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:309)
at
org.geotools.filter.FunctionExpressionImpl.accept(FunctionExpressionImpl.java:147)
at
org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:114)
at
org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:155)
at org.geotools.filter.IsEqualsToImpl.accept(IsEqualsToImpl.java:151)
at
org.geotools.styling.visitor.DuplicatingStyleVisitor.copy(DuplicatingStyleVisitor.java:359)
at
org.geotools.styling.visitor.DuplicatingStyleVisitor.visit(DuplicatingStyleVisitor.java:270)
at
org.geotools.renderer.lite.StreamingRenderer.rescaleFeatureTypeStyle(StreamingRenderer.java:1969)
at
org.geotools.renderer.lite.StreamingRenderer.applyUnitRescale(StreamingRenderer.java:1947)
at
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1897)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:764)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:572)
at
net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:359)
at
net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:222)
at
net.refractions.udig.project.internal.render.impl.RenderJob.startRendering(RenderJob.java:108)
at
net.refractions.udig.project.internal.render.impl.RenderJob.run(RenderJob.java:213)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
java.lang.RuntimeException: Unable to find function geometryType
at
org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:103)
at
org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:69)
at
org.geotools.filter.FilterFactoryImpl.function(FilterFactoryImpl.java:469)
at
org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:309)
at
org.geotools.filter.FunctionExpressionImpl.accept(FunctionExpressionImpl.java:147)
at
org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:114)
at
org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:155)
at org.geotools.filter.IsEqualsToImpl.accept(IsEqualsToImpl.java:151)
at
org.geotools.styling.visitor.DuplicatingStyleVisitor.copy(DuplicatingStyleVisitor.java:359)
at
org.geotools.styling.visitor.DuplicatingStyleVisitor.visit(DuplicatingStyleVisitor.java:270)
at
org.geotools.renderer.lite.StreamingRenderer.rescaleFeatureTypeStyle(StreamingRenderer.java:1969)
at
org.geotools.renderer.lite.StreamingRenderer.applyUnitRescale(StreamingRenderer.java:1947)
at
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1897)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:764)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:572)
at
net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:359)
at
net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:222)
at
net.refractions.udig.project.internal.render.impl.RenderJob.startRendering(RenderJob.java:108)
at
net.refractions.udig.project.internal.render.impl.RenderJob.run(RenderJob.java:213)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
net.refractions.udig.project.render.RenderException: Problemas
renderizando:Unable to find function geometryType
at
net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:388)
at
net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:222)
at
net.refractions.udig.project.internal.render.impl.RenderJob.startRendering(RenderJob.java:108)
at
net.refractions.udig.project.internal.render.impl.RenderJob.run(RenderJob.java:213)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.lang.RuntimeException: Unable to find function geometryType
at
org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:103)
at
org.geotools.filter.FunctionFinder.findFunction(FunctionFinder.java:69)
at
org.geotools.filter.FilterFactoryImpl.function(FilterFactoryImpl.java:469)
at
org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:309)
at
org.geotools.filter.FunctionExpressionImpl.accept(FunctionExpressionImpl.java:147)
at
org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:114)
at
org.geotools.filter.visitor.DuplicatingFilterVisitor.visit(DuplicatingFilterVisitor.java:155)
at org.geotools.filter.IsEqualsToImpl.accept(IsEqualsToImpl.java:151)
at
org.geotools.styling.visitor.DuplicatingStyleVisitor.copy(DuplicatingStyleVisitor.java:359)
at
org.geotools.styling.visitor.DuplicatingStyleVisitor.visit(DuplicatingStyleVisitor.java:270)
at
org.geotools.renderer.lite.StreamingRenderer.rescaleFeatureTypeStyle(StreamingRenderer.java:1969)
at
org.geotools.renderer.lite.StreamingRenderer.applyUnitRescale(StreamingRenderer.java:1947)
at
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1897)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:764)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:572)
at
net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:359)
... 4 more
Thank you!!
Joaquín
______________________
This message including any attachments may contain confidential
information, according to our Information Security Management System,
and intended solely for a specific individual to whom they are addressed.
Any unauthorised copy, disclosure or distribution of this message
is strictly forbidden. If you have received this transmission in error,
please notify the sender immediately and delete it.
______________________
Este mensaje, y en su caso, cualquier fichero anexo al mismo,
puede contener informacion clasificada por su emisor como confidencial
en el marco de su Sistema de Gestion de Seguridad de la
Informacion siendo para uso exclusivo del destinatario, quedando
prohibida su divulgacion copia o distribucion a terceros sin la
autorizacion expresa del remitente. Si Vd. ha recibido este mensaje
erroneamente, se ruega lo notifique al remitente y proceda a su borrado.
Gracias por su colaboracion.
______________________
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel