[
https://issues.apache.org/jira/browse/DELTASPIKE-1377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16861366#comment-16861366
]
Andrew Schmidt commented on DELTASPIKE-1377:
--------------------------------------------
Inside weld readResolve:
{code:java}
Object readResolve() throws ObjectStreamException {
Bean<?> bean =
Container.instance(contextId).services().get(ContextualStore.class).<Bean<Object>,
Object>getContextual(beanId);
if (bean == null) {
throw BeanLogger.LOG.proxyDeserializationFailure(beanId);
}
return
Container.instance(contextId).deploymentManager().getClientProxyProvider().getClientProxy(bean);
}{code}
beanId was:
{code:java}
org.apache.deltaspike.core.util.bean.ImmutableBeanWrapper:AnimalRepo[@javax.enterprise.context.ApplicationScoped()@org.apache.deltaspike.data.api.Repository(forEntity=class
java.lang.Object,methodPrefix=)]{AnimalRepo.findByName[@org.apache.deltaspike.data.api.Query(hints=[Ljavax.persistence.QueryHint;@7bbfe365,isNative=false,lock=NONE,max=0,named=,singleResult=JPA,value=select
a from Animal where ?1 = a.name)](java.lang.String);}{code}
And getContextual(beanId) returned null
> issue with @Repository + @Query annotation and clustered wildfly
> -----------------------------------------------------------------
>
> Key: DELTASPIKE-1377
> URL: https://issues.apache.org/jira/browse/DELTASPIKE-1377
> Project: DeltaSpike
> Issue Type: Bug
> Components: Data-Module
> Affects Versions: 1.9.0
> Reporter: Andrew Schmidt
> Priority: Major
> Attachments: cdri-test.zip, stack.txt
>
>
> Setup: 2 x wildfly 15.0.1.Final (weld-core updated to 3.0.6)
> Clustered standalone-full-ha setup, same machine with a port offset for the
> second machine.
>
> Repo:
> {code:java}
> @Repository
> @ApplicationScoped
> public interface AnimalRepo extends EntityRepository<Animal, String>
> {
> @Query( value = "select a from Animal where ?1 = a.name" )
> Animal findByName(String name);
> }
> {code}
> Session bean:
> {code:java}
> @SessionScoped
> @Named
> public class MyBean implements Serializable
> {
> private static final long serialVersionUID = 1L;
> @Inject
> private AnimalRepo animalRepo;
> public Long getTest()
> {
> return animalRepo.count();
> }
> }
> {code}
> index.xhtml
> {code:java}
> <h:form>
> #{myBean.test}
> </h:form>
> {code}
> Visiting the first server yields no error, but upon visiting the second
> server:
> {code:java}
> WELD-001500: Failed to deserialize proxy object with beanId
> org.apache.deltaspike.core.util.bean.ImmutableBeanWrapper:AnimalRepo[@javax.enterprise.context.ApplicationScoped()@org.apache.deltaspike.data.api.Repository(forEntity=class
>
> java.lang.Object,methodPrefix=)]{AnimalRepo.findByName[@org.apache.deltaspike.data.api.Query(hints=[Ljavax.persistence.QueryHint;@774c6737,isNative=false,lock=NONE,max=0,named=,singleResult=JPA,value=select
> a from Animal where ?1 = a.name)](java.lang.String);}
> {code}
> Interestingly, If the @Query annotation is removed from the findByName
> query, there is no issue.
> See attached project.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)