I'm grabbing at straws here, but my first guess is that our caching of prepared SQL queries is hitting a hiccup... To verify this, could you temporarily turn off this cache (it's on by default) via the most convenient method as documented here:
http://openjpa.apache.org/builds/2.0.1/apache-openjpa-2.0.1/docs/manual/manual.html#ref_guide_cache_querysql Thanks! Kevin On Wed, Oct 6, 2010 at 7:10 AM, Norman Maurer <[email protected]> wrote: > Hi there, > > we at JAMES use openjpa 2.0.1 as JPA Provider. Sometimes I see the > following Exception on "heavy processing": > > RROR 13:59:10,182 | james.virtualusertable-store | Failed to get > mapping for t...@localhost > <openjpa-2.0.1-r422266:989424 nonfatal user error> > org.apache.openjpa.persistence.ArgumentException: Failed to execute > query "SELECT vut FROM JamesVirtualUserTable vut WHERE (vut.user LIKE > :user OR vut.user='*') and (vut.domain like :domain or vut.domain='*') > ORDER BY vut.domain DESC". Check the query syntax for correctness. See > nested exception for details. > at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:870) > at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:792) > at > org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542) > at > org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:288) > at > org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:302) > at > org.apache.james.vut.JPAVirtualUserTable.mapAddressInternal(JPAVirtualUserTable.java:83) > at > org.apache.james.impl.vut.AbstractVirtualUserTable.mapAddress(AbstractVirtualUserTable.java:408) > at > org.apache.james.impl.vut.AbstractVirtualUserTable.getMappings(AbstractVirtualUserTable.java:108) > at > org.apache.james.impl.vut.AbstractVirtualUserTable.getMappings(AbstractVirtualUserTable.java:100) > at > org.apache.james.transport.mailets.VirtualUserTable.processMail(VirtualUserTable.java:89) > at > org.apache.james.transport.mailets.AbstractVirtualUserTableMailet.service(AbstractVirtualUserTableMailet.java:76) > at > org.apache.james.mailetcontainer.camel.MailetProcessor.process(MailetProcessor.java:59) > at > org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) > at > org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) > at > org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:290) > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:202) > at > org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) > at > org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:72) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) > at > org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) > at > org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:290) > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:202) > at > org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:143) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:78) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) > at > org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:290) > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:202) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91) > at > org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:449) > at > org.apache.camel.processor.MulticastProcessor.access$100(MulticastProcessor.java:67) > at > org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:230) > at > org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:223) > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.ClassCastException: java.lang.String cannot be > cast to java.lang.Integer > at > org.apache.openjpa.jdbc.kernel.PreparedSQLStoreQuery$PreparedSQLExecutor.toParameterArray(PreparedSQLStoreQuery.java:157) > at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:855) > ... 47 more > > Which does not make any sense to me. The Statement is constructed as : > > List<JPAVirtualUser> virtualUsers = > entityManager.createNamedQuery("selectMappings") > .setParameter("user", user) > .setParameter("domain", domain).getResultList(); > > Any idea what could be wrong ? > > Bye, > Norman >
