Hi,
Using 1.5.1.
BaseRepository:
package cat.tmb.tdo.ocicommerce.domain.bo;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.ManyToOne;
import javax.persistence.Version;
import javax.persistence.metamodel.Attribute;
import javax.persistence.metamodel.SingularAttribute;
import org.apache.commons.lang.StringUtils;
import org.apache.deltaspike.data.api.EntityManagerDelegate;
import org.apache.deltaspike.data.api.EntityRepository;
import org.apache.deltaspike.data.api.criteria.Criteria;
import org.apache.deltaspike.data.api.criteria.CriteriaSupport;
import
cat.tmb.tdo.ocicommerce.domain.exceptionhandling.OciCommerceCodeError;
import cat.tmb.tdo.ocicommerce.domain.model.util.Historitzable;
import cat.tmb.tdo.ocicommerce.domain.model.util.TMBModelIdentifiableEntity;
import cat.tmb.tdo.ocicommerce.domain.utils.Constants;
import net.jodah.typetools.TypeResolver;
public abstract class BaseRepository<ENTITY> implements
CriteriaSupport<ENTITY>, EntityRepository<ENTITY, Long>,
EntityManagerDelegate<ENTITY>, Serializable {
private static final long serialVersionUID = 3929556202713572238L;
private Class<ENTITY> entityClass;
@SuppressWarnings("unchecked")
protected BaseRepository() {
Class<?>[] typeArguments = TypeResolver.resolveRawArguments(
BaseRepository.class, getClass());
this.entityClass = (Class<ENTITY>) typeArguments[0];
}
/**
* Applies a restriction to the query so that only active entities (defined
as entities whose activation period
* contains the current date) on the queried root entity are retrieved.
*
* @param query
*/
@SuppressWarnings("unchecked")
protected void applyActiveEntityRestriction(Criteria<ENTITY, ENTITY> query)
{
Date currentDate = new Date();
SingularAttribute<ENTITY, Date> activationStartDateField =
(SingularAttribute) getField(Constants.Model.Fields.DATA_ALTA);
SingularAttribute<ENTITY, Date> activationEndDateField =
(SingularAttribute) getField(Constants.Model.Fields.DATA_BAIXA);
query.or(
criteria().ltOrEq(activationStartDateField, currentDate)
.or(criteria().isNull(activationEndDateField),
criteria().gtOrEq(activationEndDateField, currentDate)
)
);
}
/**
* <p>Given an entity (which must implement Historitzable and
TMBModelIdentifiableEntity), applies a restriction
* to the given query so that entities of the same type that have an
overlaping of their activation dates with
* the given entity are retrieved.</p>
*
* @param entityId
*/
public void applyDoesOverlapOtherActivationPeriods(Criteria<ENTITY, ENTITY>
query, ENTITY entity) {
if (!Historitzable.class.isAssignableFrom(entity.getClass()) ||
!TMBModelIdentifiableEntity.class.isAssignableFrom(entity.getClass())) {
throw new IllegalArgumentException("The entity must implement the
Historitzable interface");
}
Historitzable hist = (Historitzable) entity;
TMBModelIdentifiableEntity id = (TMBModelIdentifiableEntity) entity;
applyDoesOverlapExistingActivationPeriods(
query,
hist.getDatahoraAlta(),
hist.getDatahoraBaixa(),
Constants.Model.Fields.DATA_ALTA,
Constants.Model.Fields.DATA_BAIXA);
if (id.getId() != null) {
query.notEq((SingularAttribute) getField(Constants.Model.Fields.ID),
id.getId());
}
}
/**
* Given StarDate/EndDate this method
* appends a predicate to criteria query asking
* for is there any record that has a datahoraAlta/datahoraBaja
* between StartDate/EndDate range.
*
* @param criteria
* @param startDate
* @param endDate
*/
public void applyDoesOverlapExistingActivationPeriods(
Criteria<ENTITY, ENTITY> criteria,
Date startDate, Date endDate, String startDateFieldName, String
endDateFieldName) {
SingularAttribute<ENTITY, Date> datahoraAltaField = (SingularAttribute)
getField(startDateFieldName);
SingularAttribute<ENTITY, Date> datahoraBaixaField = (SingularAttribute)
getField(endDateFieldName);
if (endDate != null) {
applyCurrentDatahoraBaixaNotNullPredicate(criteria, datahoraAltaField,
datahoraBaixaField, startDate, endDate);
} else {
applyCurrentDatahoraBaixaNullPredicate(criteria, datahoraBaixaField,
startDate);
}
}
//When current datahorabaixa is null and datahorabaixa is null then overlap
//When current datahorabaixa is null and datahoraalta >= current
datahoraalta then overlap
@SuppressWarnings("unchecked")
private void applyCurrentDatahoraBaixaNullPredicate(
Criteria<ENTITY, ENTITY> criteria,
SingularAttribute<ENTITY, Date> datahoraBaixaField, Date startDate) {
criteria.or(
criteria()
.isNull(datahoraBaixaField),
criteria()
.notNull(datahoraBaixaField)
.gtOrEq(datahoraBaixaField, startDate));
}
@SuppressWarnings("unchecked")
private void applyCurrentDatahoraBaixaNotNullPredicate(
Criteria<ENTITY, ENTITY> criteria, SingularAttribute<ENTITY, Date>
datahoraAltaField,
SingularAttribute<ENTITY, Date> datahoraBaixaField, Date startDate, Date
endDate) {
criteria.or(
criteria().isNull(datahoraBaixaField)
.ltOrEq(datahoraAltaField, endDate),
criteria().notNull(datahoraBaixaField)
.ltOrEq(datahoraAltaField, endDate)
.gtOrEq(datahoraBaixaField, startDate)
);
}
/**
* Get a list of Active Entities
*
* @return
*/
public List<ENTITY> findActives() {
Criteria<ENTITY, ENTITY> query = criteria();
applyActiveEntityRestriction(query);
SingularAttribute<ENTITY, String> codiField = (SingularAttribute)
getField(Constants.Model.Fields.CODI);
if (codiField != null) {
query.orderAsc(codiField);
}
return query.getResultList();
}
/**
* Retrieves the metamodel field of the entity class specified with the
given field name
*
* @param entityClass
* @param fieldClass
* @param fieldName
* @param <ENTITY_CLASS>
* @param <FIELD_CLASS>
* @return
*/
protected <FIELD_CLASS> Attribute<ENTITY, FIELD_CLASS> getField(String
fieldName) {
return BaseRepository.getField(getMetamodelClass(entityClass), fieldName);
}
/**
* Retrieves the JPA metamodel field of a given metamodel class for a given
field name.
*
* @param metamodelClass
* @param fieldName
* @return
*/
protected static Attribute getField(Class metamodelClass, String fieldName)
{
Attribute metaModelField = null;
Field f = null;
try {
f = metamodelClass.getField(fieldName);
f.setAccessible(true);
metaModelField = (Attribute) f.get(null);
} catch (NoSuchFieldException | IllegalAccessException e) {
throw new OciCommerceCodeError("", e);
}
return metaModelField;
}
/**
* Obtains the JPA metamodel class associated with an entity class.
*
* @param entityClass
* @return
*/
private static Class getMetamodelClass(Class entityClass) {
Class metamodelClass = null;
try {
String metaModelClassName = entityClass.getName() + "_";
metamodelClass = Class.forName(metaModelClassName);
} catch (ClassNotFoundException cnfe) {
throw new OciCommerceCodeError("The metamodel class for " +
entityClass.getName() + " could not be found", cnfe);
}
return metamodelClass;
}
/**
* Applies a "By example" restriction to a query for a given example entity.
* The fields of the query are set to equality to the corresponding example
entity fields.
* For many to one relations, a joined restriction on id equality is
performed.
* The string fields are compared with a like operation instead of equality.
*
* @param query The criteria query to add this restriction to.
* @param exampleEntity the example entity upon wich to base the restrictions
* @see
cat.tmb.tdo.ocicommerce.bo.BaseRepository#applyByExampleRestriction(org.apache.deltaspike.data.api.criteria.Criteria,
Object, Boolean)
*/
protected void applyByExampleRestriction(Criteria<ENTITY, ENTITY> query,
ENTITY exampleEntity) {
applyByExampleRestriction(query, exampleEntity, Boolean.TRUE);
}
/**
* <p>Applies a "By example" restriction to a query for a given example
entity.</p>
* <p>The fields of the query are set to equality to the corresponding
example entity fields.</p>
* <p>For many to one relations, a joined restriction on id equality is
performed.</p>
* <p>The motivation behind this restriction (instead of relying on the
findByLike of deltaspike data), is to
* be able to compose complex criteria queries with this common search
restriction applied to other less common
* ones.</p>
*
* @param query The criteria query to add this restriction to.
* @param exampleEntity the example entity upon wich to base the
restrictions
* @param stringEquality if set to true, the string comparison is performed
by likeness instead of equality
*/
protected void applyByExampleRestriction(Criteria<ENTITY, ENTITY> query,
ENTITY exampleEntity, Boolean stringEquality) {
for (Field field : exampleEntity.getClass().getDeclaredFields()) {
if (includeField(field, exampleEntity)) {
Class fieldClass = field.getType();
String fieldName = field.getName();
SingularAttribute metamodelField = (SingularAttribute) getField(fieldName);
try {
if (TMBModelIdentifiableEntity.class.isAssignableFrom(fieldClass)) {
//If this a many to one relation, add a joined restriction on id equality
Class metamodelClass = getMetamodelClass(fieldClass);
SingularAttribute joinedIdAttribute = (SingularAttribute)
BaseRepository.getField(metamodelClass, "id");
Long exampleEntityAssociatedEntityId = ((TMBModelIdentifiableEntity)
field.get(exampleEntity)).getId();
query.join(metamodelField, where(fieldClass).eq(joinedIdAttribute,
exampleEntityAssociatedEntityId));
} else {
//entity direct attribute
if (!stringEquality && String.class.isAssignableFrom(fieldClass)) {
query.like((SingularAttribute) metamodelField, "%" + ((String)
field.get(exampleEntity)) + "%");
} else {
query.eq((SingularAttribute) metamodelField, field.get(exampleEntity));
}
}
} catch (IllegalAccessException e) {
throw new OciCommerceCodeError("Error while building query by example.
Could not access value of field " + fieldName, e);
}
}
}
}
/**
* Validates if a field of an object must be included in the query.
*
* @param field the class field
* @param entity the object instance
* @return true if the query should include this field
* @throws IllegalArgumentException
*/
@SuppressWarnings("rawtypes")
private boolean includeField(Field field, ENTITY entity)
throws IllegalArgumentException {
field.setAccessible(true);
Object fieldValue = getFieldValue(field, entity);
//Null check, no sense to look for the rest if the value is null
return fieldValueIsNotBlank(field, fieldValue) &&
JPAAnnotationsAreValid(field, fieldValue);
}
private Object getFieldValue(Field field, ENTITY entity) {
Object fieldValue = null;
try {
fieldValue = field.get(entity);
} catch (IllegalAccessException e) {
throw new OciCommerceCodeError("While trying to construct a query by
example, could not access field " + field.getName(), e);
}
return fieldValue;
}
private Boolean fieldValueIsNotBlank(Field field, Object fieldValue) {
boolean fieldIsString = String.class.isAssignableFrom(field.getType());
return (!fieldIsString && fieldValue != null) || (fieldIsString &&
StringUtils.isNotBlank((String) fieldValue));
}
private Boolean JPAAnnotationsAreValid(Field field, Object fieldValue) {
boolean result = false;
if (field.isAnnotationPresent(Column.class) ||
field.isAnnotationPresent(ManyToOne.class)) {
//We don't want to check the version of the entity for an example criteria
if (!field.isAnnotationPresent(Version.class)) {
if (field.isAnnotationPresent(ManyToOne.class)) {
//If this is a many to one association, must make sure
//this is an identifiable entity
if (TMBModelIdentifiableEntity.class.isAssignableFrom(field.getType())) {
//Now we check that the id of the class exists
result = ((TMBModelIdentifiableEntity) fieldValue).getId() != null;
}
} else { //All other checks passed, field can be included
result = true;
}
}
}
return result;
}
/**
* @param resultList
* @return
*/
protected ENTITY getFirstRecord(List<ENTITY> resultList) {
return resultList.size() > 0 ?
resultList.get(0) : null;
}
/**
* Get a list of All Entities Ordered by Codi ASC
*
* @return
*/
public List<ENTITY> findAllOrderedByCodiAsc() {
Criteria<ENTITY, ENTITY> query = criteria();
SingularAttribute<ENTITY, String> codiField = (SingularAttribute)
getField(Constants.Model.Fields.CODI);
query.orderAsc(codiField);
return query.getResultList();
}
}
On Tue, Dec 22, 2015 at 3:53 PM, Thomas Andraschko <
[email protected]> wrote:
> Which DS version do you use?
> Please try the newest.
> If it still doesn't work, please come back with the complete BaseRepository
> + a implemention of it.
>
> 2015-12-22 15:50 GMT+01:00 Esteve Avilés <[email protected]>:
>
> > Hi,
> >
> > Now we get the following error:
> >
> >
> cat.tmb.tdo.ocicommerce.domain.bo.BaseRepository.findBy(Ljava/io/Serializable;)Ljava/lang/Object;
> > AbstractMethodError:
> > cat.tmb.tdo.ocicommerce.domain.bo.BaseBO.retrieveById(BaseBO.java:82)
> >
> >
> > We are using it like this to resolve concrete Repository:
> > @SuppressWarnings("unchecked")
> > protected BaseRepository<ENTITY> getBaseRepository() {
> > return (BaseRepository<ENTITY>)
> > BeanProvider.getContextualReference(repositoryClass);
> > }
> >
> > Where
> > public abstract class BaseRepository<ENTITY> implements
> > CriteriaSupport<ENTITY>, EntityRepository<ENTITY, Long>,
> > EntityManagerDelegate<ENTITY>, Serializable {
> >
> > private static final long serialVersionUID = 3929556202713572238L;
> > private Class<ENTITY> entityClass;
> >
> > Thank you.
> >
> > Esteve
> >
> >
> >
> > On Tue, Dec 22, 2015 at 3:08 PM, Esteve Avilés <[email protected]>
> wrote:
> >
> > > Hi,
> > >
> > > Thank you.
> > >
> > > I will try.
> > >
> > > Esteve
> > >
> > > On Tue, Dec 22, 2015 at 3:05 PM, Thomas Andraschko <
> > > [email protected]> wrote:
> > >
> > >> Hi,
> > >>
> > >> using ApplicationScoped on your repositories could fix it.
> > >>
> > >> 2015-12-22 15:00 GMT+01:00 Esteve Avilés <[email protected]>:
> > >>
> > >> > Hi,
> > >> >
> > >> > We are using Deltaspike data module with JBoss EAP 6.4 in cluster
> > using
> > >> > Infinispan. We get the following error:
> > >> >
> > >> > Can anyone help us?
> > >> >
> > >> > Thanks in advance.
> > >> >
> > >> > Caused by: org.infinispan.marshall.NotSerializableException:
> > >> >
> > >>
> >
> org.apache.deltaspike.data.impl.meta.extractor.AnnotationMetadataExtractor
> > >> > Caused by: an exception which occurred:
> > >> > in field a
> > >> > in field extractors
> > >> > in field components
> > >> > in field delegateInvocationHandler
> > >> > in field instance
> > >> > in field c
> > >> > in field dependentInstances
> > >> > in field creationalContext
> > >> > in object java.util.HashMap@eacded17
> > >> > in object org.jboss.as.clustering.SimpleMarshalledValue@eacded17
> > >> > in object org.infinispan.atomic.PutOperation@36c19487
> > >> > in object java.util.LinkedList@2c42c608
> > >> > in object org.infinispan.atomic.AtomicHashMapDelta@64fb8934
> > >> > in object org.infinispan.commands.write.PutKeyValueCommand@c10651eb
> > >> > in object org.infinispan.commands.tx.PrepareCommand@838b9fc0
> > >> >
> > >> > 2015-12-17 13:28:22,475 ERROR
> > >> > [org.infinispan.transaction.TransactionCoordinator]
> > >> > (http-lxaplint3.xarxa.interna/172.28.191.67:8080-9) ISPN000097:
> Error
> > >> > while
> > >> > processing a prepare in a single-phase transaction:
> > >> > org.infinispan.CacheException: java.lang.RuntimeException: Failure
> to
> > >> > marshal argument(s)
> > >> > at org.infinispan.util.Util.rewrapAsCacheException(Util.java:542)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:186)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:515)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:173)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:194)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:251)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:238)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:233)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:212)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.ReplicationInterceptor.broadcastPrepare(ReplicationInterceptor.java:112)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.ReplicationInterceptor.visitPrepareCommand(ReplicationInterceptor.java:103)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.EntryWrappingInterceptor.visitPrepareCommand(EntryWrappingInterceptor.java:111)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.invokeNextAndCommitIf1Pc(AbstractTxLockingInterceptor.java:109)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.locking.OptimisticLockingInterceptor.visitPrepareCommand(OptimisticLockingInterceptor.java:135)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.NotificationInterceptor.visitPrepareCommand(NotificationInterceptor.java:58)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.TxInterceptor.invokeNextInterceptorAndVerifyTransaction(TxInterceptor.java:128)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.TxInterceptor.visitPrepareCommand(TxInterceptor.java:115)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.statetransfer.TransactionSynchronizerInterceptor.visitPrepareCommand(TransactionSynchronizerInterceptor.java:61)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:284)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.statetransfer.StateTransferInterceptor.handleTxCommand(StateTransferInterceptor.java:209)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.statetransfer.StateTransferInterceptor.visitPrepareCommand(StateTransferInterceptor.java:113)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:92)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.transaction.TransactionCoordinator.commit(TransactionCoordinator.java:175)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.transaction.synchronization.SynchronizationAdapter.afterCompletion(SynchronizationAdapter.java:81)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.transaction.tm.DummyTransaction.notifyAfterCompletion(DummyTransaction.java:285)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.transaction.tm.DummyTransaction.runCommitTx(DummyTransaction.java:334)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.transaction.tm.DummyTransaction.commit(DummyTransaction.java:91)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.transaction.tm.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:102)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.jboss.as.clustering.web.impl.TransactionBatchingManager.endBatch(TransactionBatchingManager.java:75)
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.jboss.as.web.session.DistributableSessionManager.processSessionRepl(DistributableSessionManager.java:1574)
> > >> > [jboss-as-web-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.jboss.as.web.session.DistributableSessionManager.storeSession(DistributableSessionManager.java:872)
> > >> > [jboss-as-web-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.jboss.as.web.session.InstantSnapshotManager.snapshot(InstantSnapshotManager.java:47)
> > >> > [jboss-as-web-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.jboss.as.web.session.ClusteredSessionValve.handleRequest(ClusteredSessionValve.java:142)
> > >> > [jboss-as-web-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.jboss.as.web.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:99)
> > >> > [jboss-as-web-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
> > >> > at
> > org.jboss.as.web.session.JvmRouteValve.invoke(JvmRouteValve.java:92)
> > >> > [jboss-as-web-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
> > >> > at
> org.jboss.as.web.session.LockingValve.invoke(LockingValve.java:64)
> > >> > [jboss-as-web-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
> > >> > [jboss-as-jpa-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
> > >> > [jboss-as-jpa-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
> > >> > [jboss-as-web-7.5.4.Final-redhat-4.jar:7.5.4.Final-redhat-4]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150)
> > >> > [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
> > >> > [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:400)
> > >> > [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
> > >> > [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
> > >> > at
> > >> >
> > >>
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
> > >> > [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
> > >> > at
> > >> >
> > >>
> >
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854)
> > >> > [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
> > >> > [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
> > >> > at
> > >>
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)
> > >> > [jbossweb-7.5.11.Final-redhat-1.jar:7.5.11.Final-redhat-1]
> > >> > at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_21]
> > >> > Caused by: java.lang.RuntimeException: Failure to marshal
> argument(s)
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.marshallCall(CommandAwareRpcDispatcher.java:281)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processSingleCall(CommandAwareRpcDispatcher.java:300)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > at
> > >> >
> > >> >
> > >>
> >
> org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:179)
> > >> > [infinispan-core-5.2.15.Final-redhat-1.jar:5.2.15.Final-redhat-1]
> > >> > ... 78 more
> > >> >
> > >> > --
> > >> > Esteve Avilés
> > >> >
> > >>
> > >
> > >
> > >
> > > --
> > > Esteve Avilés
> > >
> >
> >
> >
> > --
> > Esteve Avilés
> >
>
--
Esteve Avilés