[Geoserver-users] WMS getMap and a filter parameter

Hi Andrea:

I am trying to use the filter parameter with the 1.4.0 Geoserver
release from today. It works for me with shapefiles (yay!), but not
with a Postgis datastore. The SQL query, however, is built properly
(it includes my filter) and it works when executed via the psql
client.

Any ideas as to what I am doing wrong? The relevant console output I get is:

586533 [FINE] org.vfny.geoserver.servlets.AbstractService - reading
request: bbox=-130,24,-66,50&styles=polygon&Format=image/png&request=GetMap&layers=countries&width=550&height=250&srs=EPSG:4326&filter=(%3CFilter%3E%3CPropertyIsEqualTo%3E%3CPropertyName%3Ecountry%3C/PropertyName%3E%3CLiteral%3EUSA%3C/Literal%3E%3C/PropertyIsEqualTo%3E%3C/Filter%3E)
586534 [FINE] org.vfny.geoserver.global.Data - getting type countries
586534 [FINE] org.geotools.data.postgis.PostgisDataStore - get Feature
source called on countries
586535 [FINE] org.geotools.data.postgis.PostgisDataStore - returning
pg feature locking
586536 [FINE] org.geotools.styling.StyleImpl - number of fts set 1
586537 [FINE] org.vfny.geoserver.wms.requests.GetMapKvpReader -
establishing polygon style for topp:countries
586540 [FINE] org.vfny.geoserver.util.requests.readers.WfsXmlRequestReader
- just parsed: org.xml.sax.InputSource@anonymised.com
586541 [FINE] org.vfny.geoserver.util.requests.readers.WfsXmlRequestReader
- passing filter: [ country = USA ]
586541 [INFO] org.vfny.geoserver.servlets.AbstractService - handling
request: org.vfny.geoserver.wms.requests.GetMapRequest@anonymised.com
586542 [FINE] org.vfny.geoserver.servlets.AbstractService - strategy
is: PARTIAL-BUFFER
586544 [FINE] org.vfny.geoserver.wms.responses.GetMapResponse - setting up map
586544 [FINE] org.geotools.data.postgis.PostgisDataStore - get Feature
source called on countries
586544 [FINE] org.geotools.data.postgis.PostgisDataStore - returning
pg feature locking
586545 [FINE] org.vfny.geoserver.wms.responses.DefaultRasterMapProducer
- setting up 550x250 image
586548 [FINE] org.geotools.renderer.lite.StreamingRenderer - Affine
Transform is AffineTransform[[8.59375, 0.0, 1117.1875], [0.0,
-9.615384615384613, 480.7692307692308]]
586549 [FINE] org.geotools.styling.StyleImpl - number of fts set 1
586549 [FINE] org.geotools.renderer.lite.StreamingRenderer -
processing 1 stylers for countries
586549 [FINE] org.geotools.renderer.lite.StreamingRenderer - creating
rules for scale denominator- 3.612619251837895E7
586550 [FINE] org.geotools.data.jdbc.JDBC1DataStore - calling sql
builder with filter [[ country = USA ] AND [ geom bbox POLYGON ((-130
23.999999999999996, -130 50, -66 50, -66 23.999999999999996, -130
23.999999999999996)) ]]
586551 [FINE] org.geotools.data.jdbc.JDBC1DataStore - sql is SELECT
"key", encode(AsBinary(force_2d("geom"), 'XDR'),'base64'), "country"
FROM "public"."countries" WHERE ("country" = 'USA' AND "geom" &&
GeometryFromText('POLYGON ((-130 23.999999999999996, -130 50, -66 50,
-66 23.999999999999996, -130 23.999999999999996))', 4326))
586551 [FINE] org.geotools.data.jdbc.JDBC1DataStore - About to execute
query: SELECT "key", encode(AsBinary(force_2d("geom"),
'XDR'),'base64'), "country" FROM "public"."countries" WHERE ("country"
= 'USA' AND "geom" && GeometryFromText('POLYGON ((-130
23.999999999999996, -130 50, -66 50, -66 23.999999999999996, -130
23.999999999999996))', 4326))
586552 [FINE] org.geotools.data.jdbc.ConnectionPool - Getting
available connection.
600693 [SEVERE] org.geotools.renderer.lite.StreamingRenderer -
Exception occurrend during rendering
java.lang.IllegalArgumentException: FeatureReader allready produces
contents with the correct schema
        at org.geotools.data.ReTypeFeatureReader.typeAttributes(ReTypeFeatureReader.java:88)
        at org.geotools.data.ReTypeFeatureReader.<init>(ReTypeFeatureReader.java:68)
        at org.geotools.data.jdbc.JDBC1DataStore.getFeatureReader(JDBC1DataStore.java:699)
        at org.geotools.data.jdbc.JDBCFeatureCollection.reader(JDBCFeatureCollection.java:78)
        at org.geotools.renderer.lite.StreamingRenderer.getReader(StreamingRenderer.java:1258)
        at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1356)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:513)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:396)
        at org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(DefaultRasterMapProducer.java:239)
        at org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:208)
        at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:528)
        at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:333)
        at org.geoserver.request.Dispatcher.dispatch(Dispatcher.java:183)
        at org.geoserver.request.Dispatcher.handleRequestInternal(Dispatcher.java:58)
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1050)
        at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:354)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:226)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:627)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
        at org.mortbay.jetty.Server.handle(Server.java:269)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:430)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:687)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:492)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:199)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:339)
        at org.mortbay.jetty.nio.HttpChannelEndPoint.run(HttpChannelEndPoint.java:270)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
600694 [SEVERE]
org.geotools.renderer.lite.StreamingRenderer$DefaultRenderListener -
Exception rendering layer DefaultMapLayer[ UNNAMED, VISIBLE,
style=StyleImpl<NO_PARENT>[ name=polygon],
data=org.vfny.geoserver.global.GeoServerFeatureLocking@anonymised.com,
query=Query:
   feature type: countries
   filter: [ country = USA ]
   [properties: ALL ]]
java.lang.Exception: Exception rendering layer DefaultMapLayer[
UNNAMED, VISIBLE, style=StyleImpl<NO_PARENT>[ name=polygon],
data=org.vfny.geoserver.global.GeoServerFeatureLocking@anonymised.com,
query=Query:
   feature type: countries
   filter: [ country = USA ]
   [properties: ALL ]]
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:516)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:396)
        at org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(DefaultRasterMapProducer.java:239)
        at org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:208)
        at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:528)
        at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:333)
        at org.geoserver.request.Dispatcher.dispatch(Dispatcher.java:183)
        at org.geoserver.request.Dispatcher.handleRequestInternal(Dispatcher.java:58)
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1050)
        at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:354)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:226)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:627)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
        at org.mortbay.jetty.Server.handle(Server.java:269)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:430)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:687)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:492)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:199)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:339)
        at org.mortbay.jetty.nio.HttpChannelEndPoint.run(HttpChannelEndPoint.java:270)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
Caused by: java.lang.IllegalArgumentException: FeatureReader allready
produces contents with the correct schema
        at org.geotools.data.ReTypeFeatureReader.typeAttributes(ReTypeFeatureReader.java:88)
        at org.geotools.data.ReTypeFeatureReader.<init>(ReTypeFeatureReader.java:68)
        at org.geotools.data.jdbc.JDBC1DataStore.getFeatureReader(JDBC1DataStore.java:699)
        at org.geotools.data.jdbc.JDBCFeatureCollection.reader(JDBCFeatureCollection.java:78)
        at org.geotools.renderer.lite.StreamingRenderer.getReader(StreamingRenderer.java:1258)
        at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1356)
        at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:513)
        ... 33 more
600695 [FINE] org.geotools.renderer.lite.StreamingRenderer - Style
cache hit ratio: NaN , hits 0, requests 0
600695 [FINE] org.vfny.geoserver.servlets.AbstractService - mime type
is: image/png
600724 [INFO] org.vfny.geoserver.servlets.AbstractService - Service handled

===========================================
The wms getMap request is:
http://localhost:8080/geoserver/wms?bbox=-130,24,-66,50&styles=polygon&Format=image/png&request=GetMap&layers=countries&width=550&height=250&srs=EPSG:4326&filter=(<Filter><PropertyIsEqualTo><PropertyName>country</PropertyName><Literal>USA</Literal></PropertyIsEqualTo></Filter>)

Thanks for any help,
Alex

Alexander Petkov ha scritto:

Hi Andrea:

I am trying to use the filter parameter with the 1.4.0 Geoserver
release from today. It works for me with shapefiles (yay!), but not
with a Postgis datastore. The SQL query, however, is built properly
(it includes my filter) and it works when executed via the psql
client.

Any ideas as to what I am doing wrong? The relevant console output I get is:

Congratulations, you spotted a jdbc datastore wide bug :-(, that is,
something that can be triggered with every jdbc datastore unfortunately,
and can be triggered with WFS GetFeature requests too.
It has been reported before once, but mixed with another issue, and only
the second was noticed and fixed.

I've opened a jira issue for this:
http://jira.codehaus.org/browse/GEOT-1069

Does not seem really hard to fix, working on it.

Cheers
Andrea

Andrea Aime ha scritto:

Alexander Petkov ha scritto:

Hi Andrea:

I am trying to use the filter parameter with the 1.4.0 Geoserver
release from today. It works for me with shapefiles (yay!), but not
with a Postgis datastore. The SQL query, however, is built properly
(it includes my filter) and it works when executed via the psql
client.

Any ideas as to what I am doing wrong? The relevant console output I get is:

Congratulations, you spotted a jdbc datastore wide bug :-(, that is,
something that can be triggered with every jdbc datastore unfortunately,
and can be triggered with WFS GetFeature requests too.
It has been reported before once, but mixed with another issue, and only
the second was noticed and fixed.

I've opened a jira issue for this:
http://jira.codehaus.org/browse/GEOT-1069

Ok, I think I've fixed the issue and sent you by private mail a replacement gt2-main.jar.
Can you try it out and tell me if it works?
Cheers
Andrea

It works indeed. Thank you very much Andrea!!!
Now, how can I get the same fix in gt-2.3.x?

Thanks again,
Alex

On 12/14/06, Andrea Aime <aaime@anonymised.com> wrote:

Andrea Aime ha scritto:
> Alexander Petkov ha scritto:
>> Hi Andrea:
>>
>> I am trying to use the filter parameter with the 1.4.0 Geoserver
>> release from today. It works for me with shapefiles (yay!), but not
>> with a Postgis datastore. The SQL query, however, is built properly
>> (it includes my filter) and it works when executed via the psql
>> client.
>>
>> Any ideas as to what I am doing wrong? The relevant console output I get
>> is:
>
> Congratulations, you spotted a jdbc datastore wide bug :-(, that is,
> something that can be triggered with every jdbc datastore unfortunately,
> and can be triggered with WFS GetFeature requests too.
> It has been reported before once, but mixed with another issue, and only
> the second was noticed and fixed.
>
> I've opened a jira issue for this:
> http://jira.codehaus.org/browse/GEOT-1069

Ok, I think I've fixed the issue and sent you by private mail a
replacement gt2-main.jar.
Can you try it out and tell me if it works?
Cheers
Andrea

Alexander Petkov ha scritto:

It works indeed. Thank you very much Andrea!!!
Now, how can I get the same fix in gt-2.3.x?

Should have been already committed when I sent you the mail,
you just have to upgrade from svn. If not, I forgot some
piece along the road. Let me know.

Cheers
Andrea

You are correct, it works in gt-2.3.x too. Very nice, thanks Andrea!!!

Alex

On 12/14/06, Andrea Aime <aaime@anonymised.com> wrote:

Alexander Petkov ha scritto:
> It works indeed. Thank you very much Andrea!!!
> Now, how can I get the same fix in gt-2.3.x?

Should have been already committed when I sent you the mail,
you just have to upgrade from svn. If not, I forgot some
piece along the road. Let me know.

Cheers
Andrea

I will allow myself to bug you and the list about this again.

The filter argument works in a GetMap request when there's only one
layer. When I request 2 or more layers, however, the filter does not
have any effect and the entire contents of the featureType is
displayed.

Any tips?

A sample request is:
http://localhost:8080/geoserver/wms?bbox=-4578324,-2500333,3189008,4611929&styles=polygon,raster&Format=image/png&request=GetMap&layers=countries,modA2006348183705&width=800&height=600&srs=EPSG:41110&filter=(<Filter><PropertyIsEqualTo><PropertyName>country</PropertyName><Literal>USA</Literal></PropertyIsEqualTo></Filter>)

Thanks,
Alex

On 12/14/06, Alexander Petkov <greenkov@anonymised.com> wrote:

You are correct, it works in gt-2.3.x too. Very nice, thanks Andrea!!!

Alex

On 12/14/06, Andrea Aime <aaime@anonymised.com> wrote:
> Alexander Petkov ha scritto:
> > It works indeed. Thank you very much Andrea!!!
> > Now, how can I get the same fix in gt-2.3.x?
>
> Should have been already committed when I sent you the mail,
> you just have to upgrade from svn. If not, I forgot some
> piece along the road. Let me know.
>
> Cheers
> Andrea
>

Alexander Petkov ha scritto:

I will allow myself to bug you and the list about this again.

The filter argument works in a GetMap request when there's only one
layer. When I request 2 or more layers, however, the filter does not
have any effect and the entire contents of the featureType is
displayed.

Soo... as far as I remember, you should specify a filter for each
layer, just like styles. But some leniency is built in so that if
you specify just one filter, it's applied to all layers.
And indeed you're right, this case wasn't tested and there are bugs.

What concerns me the most, now that I think about it seriously,
is the filter separator for multiple filters, since using the comma ","
may have issues with our poor parsing code, which would interpret is as
a separator even if used inside the filter, and we have no escape support.

A proper alternative would be to have the filter group expressed
in <filters><filter>...</filter>...<filter>...</filter></filters>
form I guess.

Look, I've opened a jira issue, and fixed parsing keeping on using ","
as a separator on 1.4.x, 1.5.x and trunk... but this may change
when we decide how to handle multiple filters properly.

Cheers
Andrea

Look, I've opened a jira issue, and fixed parsing keeping on using ","
as a separator on 1.4.x, 1.5.x and trunk... but this may change
when we decide how to handle multiple filters properly.

Cheers
Andrea

Hi Andrea:

I found some time to try the filters. It seems to work as expected
with a single layer. With multiple layers, the "," separator seems to
be a problem:

[Fatal Error] :1:1: Content is not allowed in prolog.
org.vfny.geoserver.wms.WmsException: org.xml.sax.SAXParseException:
Content is not allowed in prolog.
  at org.vfny.geoserver.wms.requests.GetMapKvpReader.parseFilterParam(GetMapKvpReader.java:871)
  at org.vfny.geoserver.wms.requests.GetMapKvpReader.parseOptionalParameters(GetMapKvpReader.java:291)
  at org.vfny.geoserver.wms.requests.GetMapKvpReader.getRequest(GetMapKvpReader.java:229)
  at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:323)
  at org.geoserver.request.Dispatcher.dispatch(Dispatcher.java:195)
  at org.geoserver.request.Dispatcher.handleRequestInternal(Dispatcher.java:58)
  at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
  at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
  at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
  at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
  at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
  at java.lang.Thread.run(Thread.java:534)
Caused by: org.vfny.geoserver.wfs.WfsException:
org.xml.sax.SAXParseException: Content is not allowed in prolog.
  at org.vfny.geoserver.util.requests.readers.WfsXmlRequestReader.readFilter(WfsXmlRequestReader.java:63)
  at org.vfny.geoserver.wms.requests.GetMapKvpReader.parseFilterParam(GetMapKvpReader.java:865)
  ... 30 more
Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
  at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
  at org.xml.sax.helpers.ParserAdapter.parse(Unknown Source)
  at org.vfny.geoserver.util.requests.readers.WfsXmlRequestReader.readFilter(WfsXmlRequestReader.java:60)
  ... 31 more

The request I made is:

http://localhost:8080/geoserver/wms?bbox=-150,20,-66,70&styles=normal,countries&Format=image/png&request=GetMap&layers=single_wrf_contour,countries&width=550&height=250&srs=EPSG:4326&filter=(,<Filter><PropertyIsEqualTo><PropertyName>country</PropertyName><Literal>USA</Literal></PropertyIsEqualTo></Filter>)

The filter does not take effect if I remove the "," separator from the
filter parameter.

Can you see if I am doing anything wrong?

Thanks,
Alex

Alexander Petkov ha scritto:

Look, I've opened a jira issue, and fixed parsing keeping on using
"," as a separator on 1.4.x, 1.5.x and trunk... but this may change
when we decide how to handle multiple filters properly.

Cheers Andrea

Hi Andrea:

I found some time to try the filters. It seems to work as expected with a single layer. With multiple layers, the "," separator seems to
be a problem:

...

The request I made is:

http://localhost:8080/geoserver/wms?bbox=-150,20,-66,70&styles=normal,countries&Format=image/png&request=GetMap&layers=single_wrf_contour,countries&width=550&height=250&srs=EPSG:4326&filter=(,<Filter><PropertyIsEqualTo><PropertyName>country</PropertyName><Literal>USA</Literal></PropertyIsEqualTo></Filter>)

The filter does not take effect if I remove the "," separator from
the filter parameter.

Can you see if I am doing anything wrong?

Don't use the ( ) parenthesis as separators, but only the comma.
Cheers
Andrea

Andrea:

I updated SVN (for both geoserver and gt-2.3.x) after we talked in IRC
yesterday.
After I recompiled, the filter parameter worked as expected.

Thanks for your help,
Alex

On 1/9/07, Andrea Aime <aaime@anonymised.com> wrote:

Alexander Petkov ha scritto:
>>
>> Look, I've opened a jira issue, and fixed parsing keeping on using
>> "," as a separator on 1.4.x, 1.5.x and trunk... but this may change
>> when we decide how to handle multiple filters properly.
>>
>> Cheers Andrea
>>
>
> Hi Andrea:
>
> I found some time to try the filters. It seems to work as expected
> with a single layer. With multiple layers, the "," separator seems to
> be a problem:
>

...

> The request I made is:
>
> http://localhost:8080/geoserver/wms?bbox=-150,20,-66,70&styles=normal,countries&Format=image/png&request=GetMap&layers=single_wrf_contour,countries&width=550&height=250&srs=EPSG:4326&filter=(,<Filter><PropertyIsEqualTo><PropertyName>country</PropertyName><Literal>USA</Literal></PropertyIsEqualTo></Filter>)
>
> The filter does not take effect if I remove the "," separator from
> the filter parameter.
>
> Can you see if I am doing anything wrong?

Don't use the ( ) parenthesis as separators, but only the comma.
Cheers
Andrea

Alexander Petkov ha scritto:

Andrea:

I updated SVN (for both geoserver and gt-2.3.x) after we talked in IRC
yesterday.
After I recompiled, the filter parameter worked as expected.

Phew, happy to hear that :slight_smile:
Cheers
Andrea