#2498 closed defect (fixed)
OGRSpatialReference::Validate does not return correct error code in Python
Reported by: | Mateusz Łoskot | Owned by: | Mateusz Łoskot |
---|---|---|---|
Priority: | normal | Milestone: | 1.6.0 |
Component: | OGR_SRS | Version: | svn-trunk |
Severity: | normal | Keywords: | python validate |
Cc: | hobu |
Description (last modified by )
I'm trying to use the Validate method of osgeo.osr.SpatialReference class but I'm experiencing strange problem. Regardless of what WKT is validated - valid or invalid - the Validate() function always returns Zero.
Simple test:
wkt = ... # invalid WKT srs = osr.SpatialReference() srs.ImportFromWkt(wkt) print srs.Validate() # always returns Zero
To be 100% of that, I patched the C++ implementation of OGRSpatialReference::Validate to always return OGRERR_CORRUPT_DATA (integer value 5), regardless of WKT being validated.
Testing the patched GDAL has confirmed that Zero is returned, always:
mloskot@vm-ubuntu704ora:~/dev/gdal/bugs/1183$ python Python 2.5.1 (r251:54863, Mar 7 2008, 03:41:45) [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import osgeo.osr as osr >>> srs = osr.SpatialReference() >>> srs.ImportFromWkt("xxx") 0 >>> srs.Validate() OSR: XXX 0 >>>
Here, xxx can be ie. Oracle WKT of correct format but unrecognized nodes/values, etc.
Attachments (1)
Change History (8)
by , 16 years ago
Attachment: | testing-osr-validate-with-python.patch added |
---|
comment:1 by , 16 years ago
Description: | modified (diff) |
---|
comment:2 by , 16 years ago
Description: | modified (diff) |
---|
comment:3 by , 16 years ago
Cc: | added |
---|
The definition from osr.i seems straight forward. I wonder if this relates to special OGRErr handling rules? Adding hobu.
OGRErr Validate() { return OSRValidate(self); }
comment:4 by , 16 years ago
Owner: | changed from | to
---|
comment:5 by , 16 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:6 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:7 by , 16 years ago
Milestone: | → 1.6.0 |
---|
Patch used to test and confirm that Python bindings of OGRSpatialReference::Validate function always return Zero, even if original implementation returns different error code