GeoServer
  1. GeoServer
  2. GEOS-1361

BUG under GeoServer SLD rendering process with Oracle Spatial

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.3
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:
      Windows XP SP2, Tomcat 5.0.18
    • Number of attachments :
      0

      Description

      I detect a possible bug under GeoServer SLD rendering process with Oracle Spatial.

      Primary i applyed a classification over a string field in a shapefile.
      It was fine and without any problem.

      This field has values like 'A'.'AF','0','EN'....

      <?xml version="1.0" encoding="ISO-8859-1"?>
      <sld:StyledLayerDescriptor version="1.0.0"
      xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
      xmlns="http://www.opengis.net/sld"
      xmlns:sld="http://www.opengis.net/sld"
      xmlns:ogc="http://www.opengis.net/ogc"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <sld:NamedLayer>
      <sld:Name>MyShape</sld:Name>
      <sld:UserStyle>
      <sld:Name>Style1</sld:Name>
      <sld:FeatureTypeStyle>
      <sld:Rule>
      <sld:Name>Not assigned</sld:Name>
      <sld:Title>Not assigned</sld:Title>
      <ogc:Filter>
      <ogc:PropertyIsEqualTo>
      <ogc:PropertyName>X_TIPLAMP</ogc:PropertyName>
      <ogc:Literal>0</ogc:Literal>
      </ogc:PropertyIsEqualTo>
      </ogc:Filter>
      <sld:PointSymbolizer>
      <sld:Graphic>
      <sld:Mark>
      <sld:WellKnownName>circle</sld:WellKnownName>
      <sld:Stroke>
      <sld:CssParameter name="stroke">#000000</sld:CssParameter>
      <sld:CssParameter name="stroke-width">1</sld:CssParameter>
      <sld:CssParameter name="stroke-opacity">1.0</sld:CssParameter>
      </sld:Stroke>
      </sld:Mark>
      <sld:Size>18</sld:Size>
      <sld:Rotation>0</sld:Rotation>
      </sld:Graphic>
      </sld:PointSymbolizer>
      <sld:PointSymbolizer>
      <sld:Graphic>
      <sld:Mark>
      <sld:WellKnownName>circle</sld:WellKnownName>
      <sld:Fill>
      <sld:CssParameter name="fill">#000000</sld:CssParameter>
      <sld:CssParameter name="fill-opacity">1.0</sld:CssParameter>
      </sld:Fill>
      </sld:Mark>
      .....

      When i take the same sld and i adapt it to a similar structure in an Oracle Spatial Database, over a similar VARCHAR field and same values, i get the next error at tomcat console:

      ************************************************************

      GetMap Request
      version: 1.1.1
      output format: image/png
      width height: 457,800
      bbox: Env[206775.511094 : 280287.579321, 4118932.435112 : 4160926.204087]
      layers: topp:X_PUNTOLUZ
      styles: INVIEM_CLASIF_ORA_PUNTOLUZ_TIPLAMP
      27588110 [GRAVE] org.geotools.data.jdbc.JDBC1DataStore - Error Performing SQL qu
      ery: SELECT "X_RID", "X_TIPLAMPARA", "GEOMETRY1" FROM "X_PUNTOLUZ" WHERE (SDO_RE
      LATE("GEOMETRY1",MDSYS.SDO_GEOMETRY(2003,23030,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,
      1003,3),MDSYS.SDO_ORDINATE_ARRAY(205121.4895588925,4117278.4135768795,281941.600
      85610754,4162580.2256221203)),'mask=anyinteract querytype=WINDOW') = 'TRUE' AND
      ((((((((((("X_TIPLAMPARA" = 0 OR "X_TIPLAMPARA" = 'F') OR "X_TIPLAMPARA" = 'FC'
      ) OR "X_TIPLAMPARA" = 'H') OR "X_TIPLAMPARA" = 'HM') OR "X_TIPLAMPARA" = 'I') OR
      "X_TIPLAMPARA" = 'IND') OR "X_TIPLAMPARA" = 'LM') OR "X_TIPLAMPARA" = 'SM') OR
      "X_TIPLAMPARA" = 'VM') OR "X_TIPLAMPARA" = 'VSAP') OR "X_TIPLAMPARA" = 'VSBP'))
      java.sql.SQLException: ORA-01722: n- mero no vßlido
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
      :112)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
      at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
      at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
      at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)
      at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStateme
      nt.java:1060)
      at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.jav
      a:830)
      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
      nt.java:1132)
      at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:
      1272)
      at org.geotools.data.jdbc.JDBC1DataStore.executeQuery(JDBC1DataStore.jav
      a:926)
      at org.geotools.data.jdbc.JDBC1DataStore.getFeatureReader(JDBC1DataStore
      .java:669)
      at org.geotools.data.jdbc.JDBCFeatureCollection.reader(JDBCFeatureCollec
      tion.java:78)

      ************************************************************

      it sounds like that if there's a numeric value in a VARCHAR field, then the SQL string is not correct.

      see
      .... X_TIPLAMPARA" = 0 OR "X_TIPLAMPARA" = 'F' ... in the sample error

      it should be like

      ... X_TIPLAMPARA" = "0" OR "X_TIPLAMPARA" = 'F' ...

      In my sld at the moment i've changed

      <ogc:PropertyIsEqualTo>
      <ogc:PropertyName>X_TIPLAMP</ogc:PropertyName>
      <ogc:Literal>0</ogc:Literal>
      </ogc:PropertyIsEqualTo>

      with

      <ogc:PropertyIsEqualTo>
      <ogc:PropertyName>X_TIPLAMP</ogc:PropertyName>
      <ogc:Literal>'0'</ogc:Literal>
      </ogc:PropertyIsEqualTo>

      and works fine

        Activity

        Hide
        Andrea Aime added a comment -

        Unfortunately we cannot fix this in 1.5.3, but we have it fixed in 1.6.0betas.
        Can you try out 1.6.0beta3 and see if it works for you?

        Show
        Andrea Aime added a comment - Unfortunately we cannot fix this in 1.5.3, but we have it fixed in 1.6.0betas. Can you try out 1.6.0beta3 and see if it works for you?

          People

          • Assignee:
            Andrea Aime
            Reporter:
            Daniel Luna Rodríguez
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: