[Geoserver-devel] colon in FID

Best geoserver user,

I am using geoserver 1.3.4 with oracle DB.

When i do a getRequest like the one below it return an gml element with an FID which contains colons. This is illegal because an ID cannot contain a colon.

GetFeature?typename=ttt:TEST_LAYER&filter=<ogc:Filter xmlns:ogc=‘http://www.opengis.net/ogc’>ogc:PropertyIsEqualToogc:PropertyNamenis:TEST_NAME</ogc:PropertyName>ogc:LiteralXXX%XXX</ogc:Literal></ogc:PropertyIsEqualTo></ogc:Filter>

the return GML XML is:

gml:featureMember
<nis:DIENST_LAYER_CURRENT fid=“TEST_LAYER.1b33a0e:1100cb2a684:-1136”>

As you can see, the fid is generated with multiple colons.

Is this a flaw in geoserver? What can i do to make sure geoserver does not generated an id with colon?

Thanks in advance,

Greeting,
Amon


Search from any Web page with powerful protection. Get the FREE Windows Live Toolbar Today! Try it now!

Voornaam Achternaam ha scritto:

Best geoserver user,
I am using geoserver 1.3.4 with oracle DB.
When i do a getRequest like the one below it return an gml element with an FID which contains colons. This is illegal because an ID cannot contain a colon.
GetFeature?typename=ttt:TEST_LAYER&filter=<ogc:Filter xmlns:ogc='http://www.opengis.net/ogc’><ogc:PropertyIsEqualTo><ogc:PropertyName>nis:TEST_NAME</ogc:PropertyName><ogc:Literal>XXX%XXX</ogc:Literal></ogc:PropertyIsEqualTo></ogc:Filter>
the return GML XML is:
.........................
<gml:featureMember>
<nis:DIENST_LAYER_CURRENT fid="TEST_LAYER.1b33a0e:1100cb2a684:-1136">
.................................
As you can see, the fid is generated with multiple colons.
Is this a flaw in geoserver? What can i do to make sure geoserver does not generated an id with colon?

Yes, it's an issue in how FIDS are generated. We have a fix that's scheduled for 1.6.x, but I guess we can back-port it to 1.5.x
and 1.4.x. I would suggest to switch to 1.4.x series anyways, there
are significant bug fixes in it, geoserver 1.3.x series has flaws
that makes it OOM after a few hours/days/weeks of work, depending on how
intense is your workload.

I've opened an issue so that I won't forget about it:
http://jira.codehaus.org/browse/GEOS-846

Cheers
Andrea

Andrea Aime wrote:

Voornaam Achternaam ha scritto:

Best geoserver user,
I am using geoserver 1.3.4 with oracle DB.
When i do a getRequest like the one below it return an gml element with an FID which contains colons. This is illegal because an ID cannot contain a colon.
GetFeature?typename=ttt:TEST_LAYER&filter=<ogc:Filter xmlns:ogc='http://www.opengis.net/ogc’><ogc:PropertyIsEqualTo><ogc:PropertyName>nis:TEST_NAME</ogc:PropertyName><ogc:Literal>XXX%XXX</ogc:Literal></ogc:PropertyIsEqualTo></ogc:Filter>
the return GML XML is:
.........................
<gml:featureMember>
<nis:DIENST_LAYER_CURRENT fid="TEST_LAYER.1b33a0e:1100cb2a684:-1136">
.................................
As you can see, the fid is generated with multiple colons.
Is this a flaw in geoserver? What can i do to make sure geoserver does not generated an id with colon?

Yes, it's an issue in how FIDS are generated. We have a fix that's scheduled for 1.6.x, but I guess we can back-port it to 1.5.x
and 1.4.x. I would suggest to switch to 1.4.x series anyways, there
are significant bug fixes in it, geoserver 1.3.x series has flaws
that makes it OOM after a few hours/days/weeks of work, depending on how
intense is your workload.

You also should be able to fix this problem just by properly setting a primary key on your column. That generated FID is when there are no good candidates for making a unique FID. If your table has a primary key then GeoServer will use that.

Chris

I've opened an issue so that I won't forget about it:
http://jira.codehaus.org/browse/GEOS-846

Cheers
Andrea

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:1003,45a616ea92592081064789!

--
Chris Holmes
The Open Planning Project
http://topp.openplans.org

Chris Holmes ha scritto:

You also should be able to fix this problem just by properly setting a primary key on your column. That generated FID is when there are no good candidates for making a unique FID. If your table has a primary key then GeoServer will use that.

Oh, you're right... unfortunately the same occurs when you insert
a new feature with a feature type backed by a BasicFidMapper (uses
the same generation approach). So we need two fixes.

Cheers
Andrea