[Geoserver-devel] Antique, odd behavior in GetMap requests handling

Hi,
looking into an issue with GetFeatureInfo not returning any feature
on a map that clearly had some (http://jira.codehaus.org/browse/GEOS-4252)
I discovered an hidden "easter egg" in the code: if a WMS request misses
the _required_ parameter SRS GetMap blindly assumes EPSG:4326 whilst
GetFeatureInfo simply starts going bonkers.

Now, the parameter is _required_, so I would just go and throw an exception
there (and btw, surprised CITE tests do not check for that... checked, there
is no "cite compliance" trick in the wms code).

If we really really want to be lenient and keep on accepting malformed requests,
we should then try to use the first layer srs, not just pick a random
srs that may have
nothing to do with the data in the current request.

However that makes for quite a hard to debug issues: it took step by step code
debugging to find out why GetFeatureInfo was not even reaching to the database
when clicking, in the preview, on a map that clearly had features showing (at
that scale, GFI without the SRS was computing the wrong scale and deciding
all the scale dependent rules were inactive).
That's why I'm more of leaning towards simply throwing an exception.

Opinions?

Cheers
Andrea

-----------------------------------------------------
Ing. Andrea Aime
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584962313
fax: +39 0584962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf

-----------------------------------------------------

On my opinion we should just throw an exception since the parameter is required.


Ing. Alessio Fabiani
Founder / CTO GeoSolutions S.A.S.

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: (+39) 0584 96.23.13
fax: (+39) 0584 96.23.13
mobile:(+39) 349 82.27.000

http://www.geo-solutions.it
http://geo-solutions.blogspot.com
http://www.linkedin.com/in/alessiofabiani
http://twitter.com/simogeo

On Fri, Dec 10, 2010 at 10:04 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

Hi,
looking into an issue with GetFeatureInfo not returning any feature
on a map that clearly had some (http://jira.codehaus.org/browse/GEOS-4252)
I discovered an hidden “easter egg” in the code: if a WMS request misses
the required parameter SRS GetMap blindly assumes EPSG:4326 whilst
GetFeatureInfo simply starts going bonkers.

Now, the parameter is required, so I would just go and throw an exception
there (and btw, surprised CITE tests do not check for that… checked, there
is no “cite compliance” trick in the wms code).

If we really really want to be lenient and keep on accepting malformed requests,
we should then try to use the first layer srs, not just pick a random
srs that may have
nothing to do with the data in the current request.

However that makes for quite a hard to debug issues: it took step by step code
debugging to find out why GetFeatureInfo was not even reaching to the database
when clicking, in the preview, on a map that clearly had features showing (at
that scale, GFI without the SRS was computing the wrong scale and deciding
all the scale dependent rules were inactive).
That’s why I’m more of leaning towards simply throwing an exception.

Opinions?

Cheers
Andrea


Ing. Andrea Aime
Senior Software Engineer

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: +39 0584962313
fax: +39 0584962313

http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf




Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

I'd say throw an exception. For lenient there's the reflector.

On Fri, 2010-12-10 at 10:08 +0100, Alessio Fabiani wrote:

On my opinion we should just throw an exception since the parameter is
required.

-------------------------------------------------------
Ing. Alessio Fabiani
Founder / CTO GeoSolutions S.A.S.

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy

phone: (+39) 0584 96.23.13
fax: (+39) 0584 96.23.13
mobile:(+39) 349 82.27.000

http://www.geo-solutions.it
http://geo-solutions.blogspot.com
http://www.linkedin.com/in/alessiofabiani
http://twitter.com/simogeo
-------------------------------------------------------

On Fri, Dec 10, 2010 at 10:04 AM, Andrea Aime
<andrea.aime@anonymised.com> wrote:
        Hi,
        looking into an issue with GetFeatureInfo not returning any
        feature
        on a map that clearly had some
        (http://jira.codehaus.org/browse/GEOS-4252)
        I discovered an hidden "easter egg" in the code: if a WMS
        request misses
        the _required_ parameter SRS GetMap blindly assumes EPSG:4326
        whilst
        GetFeatureInfo simply starts going bonkers.
        
        Now, the parameter is _required_, so I would just go and throw
        an exception
        there (and btw, surprised CITE tests do not check for that...
        checked, there
        is no "cite compliance" trick in the wms code).
        
        If we really really want to be lenient and keep on accepting
        malformed requests,
        we should then try to use the first layer srs, not just pick a
        random
        srs that may have
        nothing to do with the data in the current request.
        
        However that makes for quite a hard to debug issues: it took
        step by step code
        debugging to find out why GetFeatureInfo was not even reaching
        to the database
        when clicking, in the preview, on a map that clearly had
        features showing (at
        that scale, GFI without the SRS was computing the wrong scale
        and deciding
        all the scale dependent rules were inactive).
        That's why I'm more of leaning towards simply throwing an
        exception.
        
        Opinions?
        
        Cheers
        Andrea
        
        -----------------------------------------------------
        Ing. Andrea Aime
        Senior Software Engineer
        
        GeoSolutions S.A.S.
        Via Poggio alle Viti 1187
        55054 Massarosa (LU)
        Italy
        
        phone: +39 0584962313
        fax: +39 0584962313
        
        http://www.geo-solutions.it
        http://geo-solutions.blogspot.com/
        http://www.linkedin.com/in/andreaaime
        http://twitter.com/geowolf
        
        -----------------------------------------------------
        
        ------------------------------------------------------------------------------
        _______________________________________________
        Geoserver-devel mailing list
        Geoserver-devel@lists.sourceforge.net
        https://lists.sourceforge.net/lists/listinfo/geoserver-devel

------------------------------------------------------------------------------
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Gabriel Roldan
groldan@anonymised.com
Expert service straight from the developers