james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kevin Sutter <kwsut...@gmail.com>
Subject Re: ClassCastException / org.apache.openjpa.persistence.ArgumentException on heavy processing
Date Wed, 06 Oct 2010 16:58:47 GMT
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 <norman@apache.org> 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 te@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
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message