<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Question Re: Exception when using JDO-QueryLanguage finder in Technology Q&amp;A</title>
    <link>https://community.sap.com/t5/technology-q-a/exception-when-using-jdo-querylanguage-finder/qaa-p/807333#M251727</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Adrian,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; i tried to materialize the complete extend and perform the query on the collection which results in the following exception&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;jdo.error: Cannot access unbound variable 'label'. Unbound variables do not have a corresponding contains clause&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;any more ideas ?&lt;/P&gt;&lt;P&gt;regards, udo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 09 Jul 2004 12:42:47 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2004-07-09T12:42:47Z</dc:date>
    <item>
      <title>Exception when using JDO-QueryLanguage finder</title>
      <link>https://community.sap.com/t5/technology-q-a/exception-when-using-jdo-querylanguage-finder/qaq-p/807330</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i get the following Exception:&lt;/P&gt;&lt;P&gt;java.util.EmptyStackException&lt;/P&gt;&lt;P&gt;at java.util.Stack.peek(Stack.java:79)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.sql.jdbc.SQLQueryTreeWalker$SQLQueryTreeVisitor.getLastVariableValue(SQLQueryTreeWalker.java:1330)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.sql.jdbc.SQLQueryTreeWalker$SQLQueryTreeVisitor.leave(SQLQueryTreeWalker.java:470)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.common.query.tree.VariableAccessExpr.leave(VariableAccessExpr.java:63)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.query.TreeWalker.walk(TreeWalker.java:55)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.query.TreeWalker.walk(TreeWalker.java:53)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.query.TreeWalker.walk(TreeWalker.java:53)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.query.TreeWalker.walk(TreeWalker.java:53)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.sql.jdbc.SQLQueryTreeWalker.&amp;lt;init&amp;gt;(SQLQueryTreeWalker.java:129)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.sql.jdbc.SQLQueryTreeWalker.&amp;lt;init&amp;gt;(SQLQueryTreeWalker.java:103)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.sql.jdbc.request.factory.JDBCRequestFactory.getQueryRequestImpl(JDBCRequestFactory.java:1116)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.sql.jdbc.request.factory.JDBCRequestCloneCache.getQueryRequest(JDBCRequestCloneCache.java:347)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.sql.jdbc.request.factory.JDBCRequestCache.getQueryRequest(JDBCRequestCache.java:476)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.sql.jdbc.JDBCStoreManager.newQueryResult(JDBCStoreManager.java:676)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.StoreManagerAdapter.newQueryResult(StoreManagerAdapter.java:453)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.common.query.QueryImpl.executeWithArray(QueryImpl.java:616)&lt;/P&gt;&lt;P&gt;at com.sap.jdo.common.query.QueryImpl.execute(QueryImpl.java:529)&lt;/P&gt;&lt;P&gt;at com.vw.tpb.tpb.session.TpbHeaderBean.findTPBsByLabel(TpbHeaderBean.java:169)&lt;/P&gt;&lt;P&gt;at com.vw.tpb.tpb.session.TpbHeaderObjectImpl0.findTPBsByLabel(TpbHeaderObjectImpl0.java:188)&lt;/P&gt;&lt;P&gt;at com.vw.tpb.tpb.session.TpbHeader_Stub.findTPBsByLabel(TpbHeader_Stub.java:151)&lt;/P&gt;&lt;P&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;/P&gt;&lt;P&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;/P&gt;&lt;P&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;/P&gt;&lt;P&gt;at java.lang.reflect.Method.invoke(Method.java:324)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187)&lt;/P&gt;&lt;P&gt;at $Proxy64.findTPBsByLabel(Unknown Source)&lt;/P&gt;&lt;P&gt;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;/P&gt;&lt;P&gt;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;/P&gt;&lt;P&gt;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;/P&gt;&lt;P&gt;at java.lang.reflect.Method.invoke(Method.java:324)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.webservices.runtime.EJBImplementationContainer.invokeMethod(EJBImplementationContainer.java:126)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.webservices.runtime.RuntimeProcessor.process(RuntimeProcessor.java:146)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.webservices.runtime.RuntimeProcessor.process(RuntimeProcessor.java:68)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.webservices.runtime.servlet.ServletDispatcherImpl.doPost(ServletDispatcherImpl.java:92)&lt;/P&gt;&lt;P&gt;at SoapServlet.doPost(SoapServlet.java:51)&lt;/P&gt;&lt;P&gt;at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)&lt;/P&gt;&lt;P&gt;at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:383)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:263)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:333)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:311)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:811)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:235)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)&lt;/P&gt;&lt;P&gt;at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:147)&lt;/P&gt;&lt;P&gt;at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)&lt;/P&gt;&lt;P&gt;at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)&lt;/P&gt;&lt;P&gt;at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)&lt;/P&gt;&lt;P&gt;at java.security.AccessController.doPrivileged(Native Method)&lt;/P&gt;&lt;P&gt;at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)&lt;/P&gt;&lt;P&gt;at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:144)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when performing a query using&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pm = pmf.getPersistenceManager();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Extent tpbs = pm.getExtent( TPBImpl.class, true );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;String filter = "labels.contains( label ) &amp;amp;&amp;amp; label.language == langParam &amp;amp;&amp;amp; label.text.startsWith( textParam )";&lt;/P&gt;&lt;P&gt;Query query = pm.newQuery( tpbs, filter );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;query.declareImports( "import com.vw.tpb.refdata.model.impl.LabelImpl");&lt;/P&gt;&lt;P&gt;query.declareVariables( "LabelImpl label" );&lt;/P&gt;&lt;P&gt;query.declareParameters( "String langParam, String textParam" );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Collection found = (Collection)query.execute( language, text );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Iterator it = found.iterator();&lt;/P&gt;&lt;P&gt;while( it.hasNext() ) {&lt;/P&gt;&lt;P&gt;result.add( String.valueOf( it.next() ));&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;query.close( it );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The line points to the query.execute() method.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Saving the complete Object tree and loading it w/o any query clauses does not raise any problems.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does someone have any idea on that ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards, Udo &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[This is also posted to WebAS General]&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Jul 2004 11:37:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/exception-when-using-jdo-querylanguage-finder/qaq-p/807330</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2004-07-01T11:37:17Z</dc:date>
    </item>
    <item>
      <title>Re: Exception when using JDO-QueryLanguage finder</title>
      <link>https://community.sap.com/t5/technology-q-a/exception-when-using-jdo-querylanguage-finder/qaa-p/807331#M251725</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Udo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the issue is a known bug in the JDO Query Language Processor: a variable can be used only in one condition. It will be fixed with the next support package available.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am only aware of one workaround - have JDO execute the query in memory:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) materialize the Extent:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Extent tpbs = pm.getExtent( TPBImpl.class, true );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Collection col = new HashSet();&lt;/P&gt;&lt;P&gt;Iterator iter = tpbs.iterator();&lt;/P&gt;&lt;P&gt;while (iter.hasNext()) {&lt;/P&gt;&lt;P&gt;    col.add(iter.next());&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;tpbs.closeAll();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) use the collection as the candidates:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;String filter = "labels.contains( label ) &amp;amp;&amp;amp; label.language == langParam &amp;amp;&amp;amp; label.text.startsWith( textParam )";&lt;/P&gt;&lt;P&gt;Query query = pm.newQuery( col, filter );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this works until the fix is avaliable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Adrian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Jul 2004 08:52:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/exception-when-using-jdo-querylanguage-finder/qaa-p/807331#M251725</guid>
      <dc:creator>adrian_goerler</dc:creator>
      <dc:date>2004-07-06T08:52:50Z</dc:date>
    </item>
    <item>
      <title>Re: Exception when using JDO-QueryLanguage finder</title>
      <link>https://community.sap.com/t5/technology-q-a/exception-when-using-jdo-querylanguage-finder/qaa-p/807332#M251726</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Udo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I answered you question in the "Java Programming" Forum. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Adrian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Jul 2004 08:57:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/exception-when-using-jdo-querylanguage-finder/qaa-p/807332#M251726</guid>
      <dc:creator>adrian_goerler</dc:creator>
      <dc:date>2004-07-06T08:57:43Z</dc:date>
    </item>
    <item>
      <title>Re: Exception when using JDO-QueryLanguage finder</title>
      <link>https://community.sap.com/t5/technology-q-a/exception-when-using-jdo-querylanguage-finder/qaa-p/807333#M251727</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Adrian,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; i tried to materialize the complete extend and perform the query on the collection which results in the following exception&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;jdo.error: Cannot access unbound variable 'label'. Unbound variables do not have a corresponding contains clause&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;any more ideas ?&lt;/P&gt;&lt;P&gt;regards, udo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Jul 2004 12:42:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/exception-when-using-jdo-querylanguage-finder/qaa-p/807333#M251727</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2004-07-09T12:42:47Z</dc:date>
    </item>
  </channel>
</rss>

