Skip to content

Custom transform throws ClassCastException #118

@sravotto

Description

@sravotto

We have a custom transform that creates a result with a snippet and metadata. The snippet contains arbitrary XML, for instance:

<search:response snippet-format=“highlight" total="1" start="1" page-length="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="" xmlns:search="http://marklogic.com/appservices/search">
  <search:result index="1" uri="/doc/2.xml" path="fn:doc(&quot;/doc/2.xml&quot;)" score="92160" confidence="0.674626" fitness="0.674626">
    <search:snippet>
      <headline>Q1 <match>outlook</match></headline>
    </search:snippet>
    <search:metadata>
       <id>a</id>
    </search:metadata>
  </search:result>
  <search:qtext>outlook snippet:highlight</search:qtext>
  <search:metrics>
    <search:query-resolution-time>PT0.008042S</search:query-resolution-time>
    <search:facet-resolution-time>PT0.000323S</search:facet-resolution-time>
    <search:snippet-resolution-time>PT0.018339S</search:snippet-resolution-time>
    <search:total-time>PT0.027161S</search:total-time>
  </search:metrics>
</search:response>

This java snippet:

QueryManager q = client.newQueryManager();
StringQueryDefinition s = q.newStringDefinition("myoptions");
s.setCriteria("a snippet:highlight");
SearchHandle sh = q.search(s, new SearchHandle());

throws the following exception:

Exception in thread "main" java.lang.ClassCastException: com.sun.xml.internal.stream.events.StartElementEvent cannot be cast to javax.xml.stream.events.EndElement
at com.sun.xml.internal.stream.events.DummyEvent.asEndElement(DummyEvent.java:122)
at com.marklogic.client.io.SearchHandle$SearchResponseImpl.collectSnippet(SearchHandle.java:1191)
at com.marklogic.client.io.SearchHandle$SearchResponseImpl.handleSnippet(SearchHandle.java:1169)
at com.marklogic.client.io.SearchHandle$SearchResponseImpl.collectResult(SearchHandle.java:1106)
at com.marklogic.client.io.SearchHandle$SearchResponseImpl.handleResult(SearchHandle.java:1085)
at com.marklogic.client.io.SearchHandle$SearchResponseImpl.handleTop(SearchHandle.java:1017)
at com.marklogic.client.io.SearchHandle$SearchResponseImpl.collectTop(SearchHandle.java:1050)
at com.marklogic.client.io.SearchHandle$SearchResponseImpl.handleResponse(SearchHandle.java:1039)
at com.marklogic.client.io.SearchHandle$SearchResponseImpl.handleTop(SearchHandle.java:1016)
at com.marklogic.client.io.SearchHandle$SearchResponseImpl.parse(SearchHandle.java:984)
at com.marklogic.client.io.SearchHandle$SearchResponseImpl.access$100(SearchHandle.java:948)
at com.marklogic.client.io.SearchHandle.receiveContent(SearchHandle.java:157)
at com.marklogic.client.io.SearchHandle.receiveContent(SearchHandle.java:72)
at com.marklogic.client.impl.QueryManagerImpl.search(QueryManagerImpl.java:199)
at com.marklogic.client.impl.QueryManagerImpl.search(QueryManagerImpl.java:162)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions