This bug involves default style for generic geometry in UDIG, but is
actually caused by geotools issues. I opened
http://jira.codehaus.org/browse/GEOT-890
on Geotools JIRA, but I thought I would also post here for possible UDIG
test cases or workarounds.
I have a postgis table with generic geometry type. Udig (correctly) sets
up style in SLDContent#createGeometrySLD by creating several rules with
different symbolizers, one for each geometry type case. But condition
parts of these rules somehow leak through StreamingRenderer, resulting
in this bounding box filtering condition on datastore:
[[ geometry bbox POLYGON ((5285442.209046828 4969855.4245647825,
5285442.209046828 5343298.0754352175, 5722524.790953172
5343298.0754352175, 5722524.790953172 4969855.4245647825,
5285442.209046828 4969855.4245647825)) ] AND [[[[[[[
geometryType(geometry,) = Point ] OR [ geometryType(geometry,) =
MultiPoint ]] OR [ geometryType(geometry,) = LineString ]] OR [
geometryType(geometry,) = LinearRing ]] OR [ geometryType(geometry,) =
MultiLineString ]] OR [ geometryType(geometry,) = Polygon ]] OR [
geometryType(geometry,) = MultiPolygon ]]]
Since neither SQLEncoder nor SQLEncoderPostgisGeos knows how to deal
with FunctionExpressions, layer rendering is aborted with following
stack trace:
net.refractions.udig.project.render.RenderException: Problem rendering:
Exception rendering layer DefaultMapLayer[ Test, VISIBLE,
style=StyleImpl<NO_PARENT>[ name=Default Styler],
[EMAIL PROTECTED],
query=Query: [Request All Features]
feature type: null
filter: Filter.NONE
[properties: ALL ]]
at
net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:304)
at
net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:221)
at
net.refractions.udig.project.internal.render.impl.TilingRenderer.render(TilingRenderer.java:79)
at
net.refractions.udig.project.internal.render.impl.RenderExecutorImpl$RenderJob.startRendering(RenderExecutorImpl.java:285)
at
net.refractions.udig.project.internal.render.impl.RenderExecutorImpl$RenderJob.run(RenderExecutorImpl.java:348)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
Caused by: java.lang.Exception: Exception rendering layer
DefaultMapLayer[ Test, VISIBLE, style=StyleImpl<NO_PARENT>[ name=Default
Styler],
[EMAIL PROTECTED],
query=Query: [Request All Features]
feature type: null
filter: Filter.NONE
[properties: ALL ]]
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:508)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:412)
at
net.refractions.udig.render.internal.feature.basic.BasicFeatureRenderer.render(BasicFeatureRenderer.java:293)
... 5 more
Caused by: java.lang.UnsupportedOperationException: Function expression
support not yet added.
at org.geotools.filter.SQLEncoder.visit(SQLEncoder.java:620)
at
org.geotools.filter.FunctionExpressionImpl.accept(FunctionExpressionImpl.java:79)
at
org.geotools.filter.SQLEncoderPostgis.visit(SQLEncoderPostgis.java:282)
at
org.geotools.filter.CompareFilterImpl.accept(CompareFilterImpl.java:378)
at org.geotools.filter.SQLEncoder.visit(SQLEncoder.java:377)
at
org.geotools.filter.LogicFilterImpl.accept(LogicFilterImpl.java:336)
at org.geotools.filter.SQLEncoder.visit(SQLEncoder.java:377)
at
org.geotools.filter.LogicFilterImpl.accept(LogicFilterImpl.java:336)
at org.geotools.filter.SQLEncoder.visit(SQLEncoder.java:377)
at
org.geotools.filter.LogicFilterImpl.accept(LogicFilterImpl.java:336)
at org.geotools.filter.SQLEncoder.visit(SQLEncoder.java:377)
at
org.geotools.filter.LogicFilterImpl.accept(LogicFilterImpl.java:336)
at org.geotools.filter.SQLEncoder.visit(SQLEncoder.java:377)
at
org.geotools.filter.LogicFilterImpl.accept(LogicFilterImpl.java:336)
at org.geotools.filter.SQLEncoder.visit(SQLEncoder.java:377)
at
org.geotools.filter.LogicFilterImpl.accept(LogicFilterImpl.java:336)
at org.geotools.filter.SQLEncoder.visit(SQLEncoder.java:377)
at
org.geotools.filter.LogicFilterImpl.accept(LogicFilterImpl.java:336)
at org.geotools.filter.SQLEncoder.encode(SQLEncoder.java:212)
at org.geotools.filter.SQLEncoder.encode(SQLEncoder.java:236)
at
org.geotools.data.postgis.PostgisSQLBuilder.sqlWhere(PostgisSQLBuilder.java:147)
at
org.geotools.data.jdbc.DefaultSQLBuilder.buildSQLQuery(DefaultSQLBuilder.java:175)
at
org.geotools.data.jdbc.JDBC1DataStore.constructQuery(JDBC1DataStore.java:727)
at
org.geotools.data.jdbc.JDBC1DataStore.getFeatureReader(JDBC1DataStore.java:654)
at
org.geotools.data.jdbc.JDBCFeatureCollection.reader(JDBCFeatureCollection.java:78)
at
org.geotools.renderer.lite.StreamingRenderer.getReader(StreamingRenderer.java:1090)
at
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1188)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:506)
... 7 more
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel