title: Geoserver WFS Cross Layer Filtering and String IDs
body: <p>I have a Geoserver WFS request with a cross layer filter based cql in it, that looks like this:</p>
  
  <pre><code>...&amp;CQL_FILTER=INTERSECTS(the_geom, querySingle('myLayerName','the_geom','the_id = F338'))
  </code></pre>
  
  <p>This does not work. Geoserver is giving me this error message:</p>
  
  <blockquote>
    <p>java.lang.NullPointerException: PropertyDescriptor is null - did you
    request a property that does not exist?</p>
  </blockquote>
  
  <p>if I change the filter to this:</p>
  
  <pre><code>&amp;CQL_FILTER=INTERSECTS(the_geom, querySingle('myLayerName','the_geom','INCLUDE'))
  </code></pre>
  
  <p>it is working.</p>
  
  <p>What could be going wrong in the first example? The id with the value F338 in fact does exist. </p>
  
  <p>Could it be that Geoserver is expecting a integer as id? In CQL filters can be strings, but they have to be quoted. In my example, i obviously cannot really quote the value because the whole parameter to the <code>querySingle</code> function is a quote itself.</p>