CQL BBOX filter cannot be transformed into XML
----------------------------------------------

                 Key: GEOT-3502
                 URL: http://jira.codehaus.org/browse/GEOT-3502
             Project: GeoTools
          Issue Type: Bug
          Components: core cql, core filter, core xml
    Affects Versions: 2.8-M1
            Reporter: Jody Garnett


This is an odd one; using the CQL command line tool cannot handle one of its 
example expressions.

To reproduce enter the the following:
{noformat}
CQL Filter Tester ("quit" to finish)
>BBOX(ATTR1, 10.0,20.0,30.0,40.0)
>ERROR:  'Cannot encode com.vividsolutions.jts.geom.Envelope should be Filter 
>or Expression'
javax.xml.transform.TransformerException: java.lang.IllegalArgumentException: 
Cannot encode com.vividsolutions.jts.geom.Envelope should be Filter or 
Expression
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:670)
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:300)
        at 
org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:296)
        at 
org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:129)
        at 
org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:108)
        at org.geotools.filter.text.cql2.CQL.main(CQL.java:264)
Caused by: java.lang.IllegalArgumentException: Cannot encode 
com.vividsolutions.jts.geom.Envelope should be Filter or Expression
        at 
org.geotools.filter.FilterTransformer$FilterTranslator.encode(FilterTransformer.java:464)
        at 
org.geotools.filter.FilterTransformer$FilterTranslator.visit(FilterTransformer.java:303)
        at org.geotools.filter.spatial.BBOXImpl.accept(BBOXImpl.java:204)
        at 
org.geotools.filter.FilterTransformer$FilterTranslator.encode(FilterTransformer.java:457)
        at 
org.geotools.xml.transform.TransformerBase$XMLReaderSupport.parse(TransformerBase.java:714)
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:607)
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:661)
        ... 5 more
---------
java.lang.IllegalArgumentException: Cannot encode 
com.vividsolutions.jts.geom.Envelope should be Filter or Expression
        at 
org.geotools.filter.FilterTransformer$FilterTranslator.encode(FilterTransformer.java:464)
        at 
org.geotools.filter.FilterTransformer$FilterTranslator.visit(FilterTransformer.java:303)
        at org.geotools.filter.spatial.BBOXImpl.accept(BBOXImpl.java:204)
        at 
org.geotools.filter.FilterTransformer$FilterTranslator.encode(FilterTransformer.java:457)
        at 
org.geotools.xml.transform.TransformerBase$XMLReaderSupport.parse(TransformerBase.java:714)
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:607)
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:661)
        at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:300)
        at 
org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:296)
        at 
org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:129)
        at 
org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:108)
        at org.geotools.filter.text.cql2.CQL.main(CQL.java:264)
{noformat}

The FilterTransformer method fails here:

{code}
public Object visit(BBOX filter, Object extraData) {
            Expression left = filter.getExpression1();
            Expression right = filter.getExpression2();
            
            final String type = "BBOX";            
            start(type);
            left.accept(this,extraData);
            if( right instanceof Literal){
                Literal literal = (Literal) right;
                Envelope bbox = literal.evaluate(null, Envelope.class);
                if( bbox != null ){
                    encode( bbox ); // <-- this line fails
                }
                else {
                    right.accept(this,extraData);
                }
            }
            else {
                right.accept(this,extraData);
            }
            end(type);
            return extraData;
        }
{code}


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to