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