You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@deltaspike.apache.org by Brecht Derwael <Br...@vangenechten.com> on 2018/11/26 12:39:34 UTC

Using a CriteriaBuilder in a repository with SimpleQueryInOutMapperBase

Hi all,

I'm on deltaspike version 1.9.0 and when trying to obtain a criteria builder, my mapper is called in an attempt to conver the criteria builder into a DTO.


@ApplicationScoped
class SomeMapper extends SimpleQueryInOutMapperBase<SomeEntity, SomeDTO> {
    SomeDTO toDto(SomeEntity entity) { ... }
}

@Repository(forEntity = SomeEntity.class)
@MappingConfig(SomeMapper.class)
public abstract class SomeRepository extends AbstractFullEntityRepository<SomeDTO, String> {
    List<SomeDTO> someCustomQuery() {
        getCriteriaBuilder();
    }
}

When someCustomQuery is invoked, it attempts to map a CriteriaBuilderImpl into a DTO object, which causes a ClassCastException when reaching SomeMapper.


It is expected behavior, or is this a bug?

Kind regards,

Brecht


Privileged Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone.&nbsp;In such case, you should destroy this message and kindly notify the sender by reply email.&nbsp; &nbsp;Please advise immediately if you or your employer does not consent to Internet email for messages of this kind.&nbsp; &nbsp;Opinions, conclusions and other information in this message that do not relate to the official business of my firm shall be understood as neither given nor endorsed by it.



Re: Using a CriteriaBuilder in a repository with SimpleQueryInOutMapperBase

Posted by Brecht Derwael <Br...@vangenechten.com>.
Yeah true, I didn't bother to write it. Returning null would do, since invoking getCriteriaBuilder() would crash already.
I'll try to get a patch out when I get home, guessing it'd be as simple as adding the CriteriaBuidler and the EntityManager classes to QueryBuilder#isUnmappableResult, but I'll test that later.



>>> Thomas Andraschko <an...@gmail.com> 11/26/18 4:08 PM >>>
I wonder about your example:

 @Repository(forEntity = SomeEntity.class)
@MappingConfig(SomeMapper.class)
public abstract class SomeRepository extends AbstractFullEntityRepository<SomeDTO, String> {
    List<SomeDTO> someCustomQuery() {
        getCriteriaBuilder();
    }
} 


There is even no return statement?

We have unittests for some cases here: https://github.com/apache/deltaspike/blob/master/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleMappedRepository.java

Maybe you could try to add you example there + comeback with a patch, so i can directly run the unittest?





Am Mo., 26. Nov. 2018 um 15:38 Uhr schrieb Brecht Derwael <Br...@vangenechten.com>:

Hi again,

Here's the specific stacktrace:

15:28:50,231 ERROR [io.undertow.request] (default task-33) UT005023: Exception handling request to /some/rest/api/: org.jboss.resteasy.spi.UnhandledException: javax.ejb.EJBException: org.apache.deltaspike.data.api.QueryInvocationException: Failed calling Repository: [Repository=com.vangenechten.SomeRepository,entity=com.vangenechten.SomeEntity,method=getCriteriaBuilder,exception=class java.lang.ClassCastException,message=org.hibernate.jpa.criteria.CriteriaBuilderImpl cannot be cast to com.vangenechten.SomeEntity
    at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:77)
    at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:220)
    at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:175)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:418)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209)
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: javax.ejb.EJBException: org.apache.deltaspike.data.api.QueryInvocationException: Failed calling Repository: [Repository=com.vangenechten.SomeRepository,entity=com.vangenechten.SomeEntity,method=getCriteriaBuilder,exception=class java.lang.ClassCastException,message=org.hibernate.jpa.criteria.CriteriaBuilderImpl cannot be cast to com.vangenechten.SomeEntity
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:187)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:327)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
    at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
    at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
    at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
    at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
    at com.vangenechten.SomeRestEndpoint$$$view42.findAll(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402)
    ... 43 more
Caused by: org.apache.deltaspike.data.api.QueryInvocationException: Failed calling Repository: [Repository=com.vangenechten.SomeRepository,entity=com.vangenechten.SomeEntity,method=getCriteriaBuilder,exception=class java.lang.ClassCastException,message=org.hibernate.jpa.criteria.CriteriaBuilderImpl cannot be cast to com.vangenechten.SomeEntity
    at org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:163)
    at org.apache.deltaspike.data.impl.handler.QueryHandler.invoke(QueryHandler.java:130)
    at org.apache.deltaspike.data.impl.handler.QueryHandler$Proxy$_$$_WeldClientProxy.invoke(Unknown Source)
    at org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler.proceed(DeltaSpikeProxyInvocationHandler.java:97)
    at org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler.invoke(DeltaSpikeProxyInvocationHandler.java:78)
    at org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler$Proxy$_$$_WeldClientProxy.invoke(Unknown Source)
    at com.vangenechten.SomeRepository$$DSPartialBeanProxy.getCriteriaBuilder(Unknown Source)
    at com.vangenechten.SomeRepository.someCustomQuery(SomeRepository.java:67)
    at com.vangenechten.SomeRestEndpoint.findAll(SomeRestEndpoint.java:32)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82)
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
    at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:64)
    at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)
    ... 87 more
Caused by: java.lang.ClassCastException: org.hibernate.jpa.criteria.CriteriaBuilderImpl cannot be cast to com.vangenechten.SomeEntity
    at com.vangenechten.SomeMapper.toDto(SomeMapper.java:12)
    at org.apache.deltaspike.data.api.mapping.SimpleQueryInOutMapperBase.mapResult(SimpleQueryInOutMapperBase.java:70)
    at com.vangenechten.SomeMapper$Proxy$_$$_WeldClientProxy.mapResult(Unknown Source)
    at org.apache.deltaspike.data.impl.builder.QueryBuilder.executeQuery(QueryBuilder.java:66)
    at org.apache.deltaspike.data.impl.builder.DelegateQueryBuilder$Proxy$_$$_WeldClientProxy.executeQuery(Unknown Source)
    at org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeNonTransactional(TransactionalQueryRunner.java:62)
    at org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeQuery(TransactionalQueryRunner.java:57)
    at org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner$Proxy$_$$_WeldClientProxy.executeQuery(Unknown Source)
    at org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:151)
    ... 124 more


Thanks in advance!

Kind regards,

Brecht





>>> Thomas Andraschko <an...@gmail.com> 11/26/18 2:59 PM >>>
Hi,


could you please post the stacktrace?

I didn't develop the mapper feature, so no idea but i can try to help.


Best regards,

Thomas


Am Mo., 26. Nov. 2018 um 13:39 Uhr schrieb Brecht Derwael <Br...@vangenechten.com>:

Hi all,

I'm on deltaspike version 1.9.0 and when trying to obtain a criteria builder, my mapper is called in an attempt to conver the criteria builder into a DTO.


@ApplicationScoped
class SomeMapper extends SimpleQueryInOutMapperBase<SomeEntity, SomeDTO> {
    SomeDTO toDto(SomeEntity entity) { ... }
}

@Repository(forEntity = SomeEntity.class)
@MappingConfig(SomeMapper.class)
public abstract class SomeRepository extends AbstractFullEntityRepository<SomeDTO, String> {
    List<SomeDTO> someCustomQuery() {
        getCriteriaBuilder();
    }
}

When someCustomQuery is invoked, it attempts to map a CriteriaBuilderImpl into a DTO object, which causes a ClassCastException when reaching SomeMapper.


It is expected behavior, or is this a bug?

Kind regards,

Brecht


            
    
               Privileged Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone.      
           In such case, you should destroy this message and kindly notify the sender by reply email.        
           Please advise immediately if you or your employer does not consent to Internet email for messages of this kind.        
           Opinions, conclusions and other information in this message that do not relate to the official business of my firm shall be understood as neither given nor endorsed by it.     
    
   
 
 
 

            
    
               Privileged Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone.      
           In such case, you should destroy this message and kindly notify the sender by reply email.        
           Please advise immediately if you or your employer does not consent to Internet email for messages of this kind.        
           Opinions, conclusions and other information in this message that do not relate to the official business of my firm shall be understood as neither given nor endorsed by it.     
    
   
 
 
 

Privileged Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone.&nbsp;In such case, you should destroy this message and kindly notify the sender by reply email.&nbsp; &nbsp;Please advise immediately if you or your employer does not consent to Internet email for messages of this kind.&nbsp; &nbsp;Opinions, conclusions and other information in this message that do not relate to the official business of my firm shall be understood as neither given nor endorsed by it.



Re: Using a CriteriaBuilder in a repository with SimpleQueryInOutMapperBase

Posted by Thomas Andraschko <an...@gmail.com>.
I wonder about your example:

@Repository(forEntity = SomeEntity.class)
@MappingConfig(SomeMapper.class)
public abstract class SomeRepository extends
AbstractFullEntityRepository<SomeDTO, String> {
    List<SomeDTO> someCustomQuery() {
        getCriteriaBuilder();
    }
}

There is even no return statement?
We have unittests for some cases here:
https://github.com/apache/deltaspike/blob/master/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleMappedRepository.java
Maybe you could try to add you example there + comeback with a patch, so i
can directly run the unittest?



Am Mo., 26. Nov. 2018 um 15:38 Uhr schrieb Brecht Derwael <
Brecht.Derwael@vangenechten.com>:

> Hi again,
>
> Here's the specific stacktrace:
>
> 15:28:50,231 ERROR [io.undertow.request] (default task-33) UT005023:
> Exception handling request to /some/rest/api/:
> org.jboss.resteasy.spi.UnhandledException: javax.ejb.EJBException:
> org.apache.deltaspike.data.api.QueryInvocationException: Failed calling
> Repository:
> [Repository=com.vangenechten.SomeRepository,entity=com.vangenechten.SomeEntity,method=getCriteriaBuilder,exception=class
> java.lang.ClassCastException,message=org.hibernate.jpa.criteria.CriteriaBuilderImpl
> cannot be cast to com.vangenechten.SomeEntity
>     at
> org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:77)
>     at
> org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:220)
>     at
> org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:175)
>     at
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:418)
>     at
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209)
>     at
> org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
>     at
> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
>     at
> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>     at
> io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
>     at
> io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
>     at
> io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
>     at
> org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
>     at
> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
>     at
> io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
>     at
> io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
>     at
> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
>     at
> io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
>     at
> io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
>     at
> io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
>     at
> io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
>     at
> io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
>     at
> io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
>     at
> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
>     at
> org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
>     at
> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
>     at
> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
>     at
> io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
>     at
> io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
>     at
> io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
>     at
> io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
>     at
> io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
>     at
> io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
>     at
> io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
>     at
> io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
>     at
> io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
>     at
> io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
>     at
> io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
>     at
> io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
>     at
> io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
>     at
> io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
>     at
> io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
>     at
> io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
>     at
> io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:748)
> Caused by: javax.ejb.EJBException:
> org.apache.deltaspike.data.api.QueryInvocationException: Failed calling
> Repository:
> [Repository=com.vangenechten.SomeRepository,entity=com.vangenechten.SomeEntity,method=getCriteriaBuilder,exception=class
> java.lang.ClassCastException,message=org.hibernate.jpa.criteria.CriteriaBuilderImpl
> cannot be cast to com.vangenechten.SomeEntity
>     at
> org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:187)
>     at
> org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)
>     at
> org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:327)
>     at
> org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
>     at
> org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
>     at
> org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
>     at
> org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
>     at
> org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
>     at
> org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
>     at
> org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
>     at com.vangenechten.SomeRestEndpoint$$$view42.findAll(Unknown Source)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:498)
>     at
> org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
>     at
> org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
>     at
> org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
>     at
> org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
>     at
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402)
>     ... 43 more
> Caused by: org.apache.deltaspike.data.api.QueryInvocationException: Failed
> calling Repository:
> [Repository=com.vangenechten.SomeRepository,entity=com.vangenechten.SomeEntity,method=getCriteriaBuilder,exception=class
> java.lang.ClassCastException,message=org.hibernate.jpa.criteria.CriteriaBuilderImpl
> cannot be cast to com.vangenechten.SomeEntity
>     at
> org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:163)
>     at
> org.apache.deltaspike.data.impl.handler.QueryHandler.invoke(QueryHandler.java:130)
>     at
> org.apache.deltaspike.data.impl.handler.QueryHandler$Proxy$_$$_WeldClientProxy.invoke(Unknown
> Source)
>     at
> org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler.proceed(DeltaSpikeProxyInvocationHandler.java:97)
>     at
> org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler.invoke(DeltaSpikeProxyInvocationHandler.java:78)
>     at
> org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler$Proxy$_$$_WeldClientProxy.invoke(Unknown
> Source)
>     at
> com.vangenechten.SomeRepository$$DSPartialBeanProxy.getCriteriaBuilder(Unknown
> Source)
>     at
> com.vangenechten.SomeRepository.someCustomQuery(SomeRepository.java:67)
>     at com.vangenechten.SomeRestEndpoint.findAll(SomeRestEndpoint.java:32)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:498)
>     at
> org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
>     at
> org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82)
>     at
> org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93)
>     at
> org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
>     at
> org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:64)
>     at
> org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
>     at
> org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
>     at
> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>     at
> org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)
>     ... 87 more
> Caused by: java.lang.ClassCastException:
> org.hibernate.jpa.criteria.CriteriaBuilderImpl cannot be cast to
> com.vangenechten.SomeEntity
>     at com.vangenechten.SomeMapper.toDto(SomeMapper.java:12)
>     at
> org.apache.deltaspike.data.api.mapping.SimpleQueryInOutMapperBase.mapResult(SimpleQueryInOutMapperBase.java:70)
>     at
> com.vangenechten.SomeMapper$Proxy$_$$_WeldClientProxy.mapResult(Unknown
> Source)
>     at
> org.apache.deltaspike.data.impl.builder.QueryBuilder.executeQuery(QueryBuilder.java:66)
>     at
> org.apache.deltaspike.data.impl.builder.DelegateQueryBuilder$Proxy$_$$_WeldClientProxy.executeQuery(Unknown
> Source)
>     at
> org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeNonTransactional(TransactionalQueryRunner.java:62)
>     at
> org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeQuery(TransactionalQueryRunner.java:57)
>     at
> org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner$Proxy$_$$_WeldClientProxy.executeQuery(Unknown
> Source)
>     at
> org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:151)
>     ... 124 more
>
> Thanks in advance!
>
> Kind regards,
>
> Brecht
>
>
>
> >>> Thomas Andraschko <an...@gmail.com> 11/26/18 2:59 PM >>>
> Hi,
>
> could you please post the stacktrace?
> I didn't develop the mapper feature, so no idea but i can try to help.
>
> Best regards,
> Thomas
>
> Am Mo., 26. Nov. 2018 um 13:39 Uhr schrieb Brecht Derwael <
> Brecht.Derwael@vangenechten.com>:
>
>> Hi all,
>>
>> I'm on deltaspike version 1.9.0 and when trying to obtain a criteria
>> builder, my mapper is called in an attempt to conver the criteria builder
>> into a DTO.
>>
>> @ApplicationScoped
>> class SomeMapper extends SimpleQueryInOutMapperBase<SomeEntity, SomeDTO> {
>>     SomeDTO toDto(SomeEntity entity) { ... }
>> }
>>
>> @Repository(forEntity = SomeEntity.class)
>> @MappingConfig(SomeMapper.class)
>> public abstract class SomeRepository extends
>> AbstractFullEntityRepository<SomeDTO, String> {
>>     List<SomeDTO> someCustomQuery() {
>>         getCriteriaBuilder();
>>     }
>> }
>>
>> When someCustomQuery is invoked, it attempts to map a CriteriaBuilderImpl
>> into a DTO object, which causes a ClassCastException when reaching
>> SomeMapper.
>>
>> It is expected behavior, or is this a bug?
>>
>> Kind regards,
>>
>> Brecht
>>
>>
>> Privileged Confidential Information may be contained in this message. If
>> you are not the addressee indicated in this message (or responsible for
>> delivery of the message to such person), you may not copy or deliver this
>> message to anyone.
>> In such case, you should destroy this message and kindly notify the
>> sender by reply email.
>> Please advise immediately if you or your employer does not consent to
>> Internet email for messages of this kind.
>> Opinions, conclusions and other information in this message that do not
>> relate to the official business of my firm shall be understood as neither
>> given nor endorsed by it.
>>
>>
>
> Privileged Confidential Information may be contained in this message. If
> you are not the addressee indicated in this message (or responsible for
> delivery of the message to such person), you may not copy or deliver this
> message to anyone.
> In such case, you should destroy this message and kindly notify the sender
> by reply email.
> Please advise immediately if you or your employer does not consent to
> Internet email for messages of this kind.
> Opinions, conclusions and other information in this message that do not
> relate to the official business of my firm shall be understood as neither
> given nor endorsed by it.
>
>

Re: Using a CriteriaBuilder in a repository with SimpleQueryInOutMapperBase

Posted by Brecht Derwael <Br...@vangenechten.com>.
Hi again,

Here's the specific stacktrace:

15:28:50,231 ERROR [io.undertow.request] (default task-33) UT005023: Exception handling request to /some/rest/api/: org.jboss.resteasy.spi.UnhandledException: javax.ejb.EJBException: org.apache.deltaspike.data.api.QueryInvocationException: Failed calling Repository: [Repository=com.vangenechten.SomeRepository,entity=com.vangenechten.SomeEntity,method=getCriteriaBuilder,exception=class java.lang.ClassCastException,message=org.hibernate.jpa.criteria.CriteriaBuilderImpl cannot be cast to com.vangenechten.SomeEntity
    at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:77)
    at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:220)
    at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:175)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:418)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209)
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: javax.ejb.EJBException: org.apache.deltaspike.data.api.QueryInvocationException: Failed calling Repository: [Repository=com.vangenechten.SomeRepository,entity=com.vangenechten.SomeEntity,method=getCriteriaBuilder,exception=class java.lang.ClassCastException,message=org.hibernate.jpa.criteria.CriteriaBuilderImpl cannot be cast to com.vangenechten.SomeEntity
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:187)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:327)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
    at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
    at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
    at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
    at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
    at com.vangenechten.SomeRestEndpoint$$$view42.findAll(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402)
    ... 43 more
Caused by: org.apache.deltaspike.data.api.QueryInvocationException: Failed calling Repository: [Repository=com.vangenechten.SomeRepository,entity=com.vangenechten.SomeEntity,method=getCriteriaBuilder,exception=class java.lang.ClassCastException,message=org.hibernate.jpa.criteria.CriteriaBuilderImpl cannot be cast to com.vangenechten.SomeEntity
    at org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:163)
    at org.apache.deltaspike.data.impl.handler.QueryHandler.invoke(QueryHandler.java:130)
    at org.apache.deltaspike.data.impl.handler.QueryHandler$Proxy$_$$_WeldClientProxy.invoke(Unknown Source)
    at org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler.proceed(DeltaSpikeProxyInvocationHandler.java:97)
    at org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler.invoke(DeltaSpikeProxyInvocationHandler.java:78)
    at org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler$Proxy$_$$_WeldClientProxy.invoke(Unknown Source)
    at com.vangenechten.SomeRepository$$DSPartialBeanProxy.getCriteriaBuilder(Unknown Source)
    at com.vangenechten.SomeRepository.someCustomQuery(SomeRepository.java:67)
    at com.vangenechten.SomeRestEndpoint.findAll(SomeRestEndpoint.java:32)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82)
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93)
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
    at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:64)
    at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)
    ... 87 more
Caused by: java.lang.ClassCastException: org.hibernate.jpa.criteria.CriteriaBuilderImpl cannot be cast to com.vangenechten.SomeEntity
    at com.vangenechten.SomeMapper.toDto(SomeMapper.java:12)
    at org.apache.deltaspike.data.api.mapping.SimpleQueryInOutMapperBase.mapResult(SimpleQueryInOutMapperBase.java:70)
    at com.vangenechten.SomeMapper$Proxy$_$$_WeldClientProxy.mapResult(Unknown Source)
    at org.apache.deltaspike.data.impl.builder.QueryBuilder.executeQuery(QueryBuilder.java:66)
    at org.apache.deltaspike.data.impl.builder.DelegateQueryBuilder$Proxy$_$$_WeldClientProxy.executeQuery(Unknown Source)
    at org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeNonTransactional(TransactionalQueryRunner.java:62)
    at org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeQuery(TransactionalQueryRunner.java:57)
    at org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner$Proxy$_$$_WeldClientProxy.executeQuery(Unknown Source)
    at org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:151)
    ... 124 more


Thanks in advance!

Kind regards,

Brecht





>>> Thomas Andraschko <an...@gmail.com> 11/26/18 2:59 PM >>>
Hi,


could you please post the stacktrace?

I didn't develop the mapper feature, so no idea but i can try to help.


Best regards,

Thomas


Am Mo., 26. Nov. 2018 um 13:39 Uhr schrieb Brecht Derwael <Br...@vangenechten.com>:

Hi all,

I'm on deltaspike version 1.9.0 and when trying to obtain a criteria builder, my mapper is called in an attempt to conver the criteria builder into a DTO.


@ApplicationScoped
class SomeMapper extends SimpleQueryInOutMapperBase<SomeEntity, SomeDTO> {
    SomeDTO toDto(SomeEntity entity) { ... }
}

@Repository(forEntity = SomeEntity.class)
@MappingConfig(SomeMapper.class)
public abstract class SomeRepository extends AbstractFullEntityRepository<SomeDTO, String> {
    List<SomeDTO> someCustomQuery() {
        getCriteriaBuilder();
    }
}

When someCustomQuery is invoked, it attempts to map a CriteriaBuilderImpl into a DTO object, which causes a ClassCastException when reaching SomeMapper.


It is expected behavior, or is this a bug?

Kind regards,

Brecht


            
    
               Privileged Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone.      
           In such case, you should destroy this message and kindly notify the sender by reply email.        
           Please advise immediately if you or your employer does not consent to Internet email for messages of this kind.        
           Opinions, conclusions and other information in this message that do not relate to the official business of my firm shall be understood as neither given nor endorsed by it.     
    
   
 
 
 

Privileged Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone.&nbsp;In such case, you should destroy this message and kindly notify the sender by reply email.&nbsp; &nbsp;Please advise immediately if you or your employer does not consent to Internet email for messages of this kind.&nbsp; &nbsp;Opinions, conclusions and other information in this message that do not relate to the official business of my firm shall be understood as neither given nor endorsed by it.



Re: Using a CriteriaBuilder in a repository with SimpleQueryInOutMapperBase

Posted by Thomas Andraschko <an...@gmail.com>.
Hi,

could you please post the stacktrace?
I didn't develop the mapper feature, so no idea but i can try to help.

Best regards,
Thomas

Am Mo., 26. Nov. 2018 um 13:39 Uhr schrieb Brecht Derwael <
Brecht.Derwael@vangenechten.com>:

> Hi all,
>
> I'm on deltaspike version 1.9.0 and when trying to obtain a criteria
> builder, my mapper is called in an attempt to conver the criteria builder
> into a DTO.
>
> @ApplicationScoped
> class SomeMapper extends SimpleQueryInOutMapperBase<SomeEntity, SomeDTO> {
>     SomeDTO toDto(SomeEntity entity) { ... }
> }
>
> @Repository(forEntity = SomeEntity.class)
> @MappingConfig(SomeMapper.class)
> public abstract class SomeRepository extends
> AbstractFullEntityRepository<SomeDTO, String> {
>     List<SomeDTO> someCustomQuery() {
>         getCriteriaBuilder();
>     }
> }
>
> When someCustomQuery is invoked, it attempts to map a CriteriaBuilderImpl
> into a DTO object, which causes a ClassCastException when reaching
> SomeMapper.
>
> It is expected behavior, or is this a bug?
>
> Kind regards,
>
> Brecht
>
>
> Privileged Confidential Information may be contained in this message. If
> you are not the addressee indicated in this message (or responsible for
> delivery of the message to such person), you may not copy or deliver this
> message to anyone.
> In such case, you should destroy this message and kindly notify the sender
> by reply email.
> Please advise immediately if you or your employer does not consent to
> Internet email for messages of this kind.
> Opinions, conclusions and other information in this message that do not
> relate to the official business of my firm shall be understood as neither
> given nor endorsed by it.
>
>