Note that there are some explanatory texts on larger screens.

plurals
  1. POHow do I cure the cause of Hibernate exception "IllegalArgumentException occurred while calling setter"?
    primarykey
    data
    text
    <p>How do I cure the cause of the occasional exception <code>IllegalArgumentException occurred while calling setter</code> that Hibernate throws when my program attempts to load a user by name from the database?</p> <p>Am I incorrectly mapping column <code>USER_RV</code> in table <code>User</code> to class <code>Integer</code> instead of <code>BigDecimal</code> or some other integer type? Note that the same application maps <code>NUMBER</code> columns in other tables to <code>Integer</code> objects, but Hibernate <strong>does not</strong> throw this exception when populating an object with a row from those tables.</p> <p>Further note that the program enables <strong>RMI cache replication</strong> for the <strong>User cache only</strong>. Might this exception be related to cache replication? Is it a bug in Ehcache or Hibernate?</p> <pre><code>Caused by: org.springframework.orm.hibernate3.HibernateSystemException: IllegalArgumentException occurred while calling setter of com.db.spgit.abstrack.model.User.rv; nested exception is org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.db.spgit.abstrack.model.User.rv at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:676) at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424) at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) at org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:1055) at org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:1048) at com.db.abstrack.dao.hibernate.AbstrackDaoHibernate.findByCriteria(AbstrackDaoHibernate.java:57) at com.db.abstrack.dao.hibernate.UserDaoHibernate.loadByName(UserDaoHibernate.java:63) at com.db.spgit.abstrack.manager.QuoteManager.populateUser(QuoteManager.java:330) at com.db.spgit.abstrack.manager.QuoteManager.populateOwnerUK(QuoteManager.java:307) at com.db.spgit.abstrack.manager.QuoteManager.populateGuids(QuoteManager.java:254) at com.db.spgit.abstrack.manager.QuoteManager.addQuoteReturnVwRfqUK(QuoteManager.java:429) at com.db.spgit.abstrack.manager.QuoteManager$$FastClassByCGLIB$$d817accb.invoke(&amp;lt;generated&gt;) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635) at com.db.spgit.abstrack.manager.QuoteManager$$EnhancerByCGLIB$$cc8d0025.addQuoteReturnVwRfqUK(&amp;lt;generated&gt;) at com.db.abstrack.ejb.RfqBean.addRfqDraftListUK(RfqBean.java:370) ... 59 more Caused by: org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.db.spgit.abstrack.model.User.rv at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:104) at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:337) at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:200) at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3514) at org.hibernate.cache.entry.CacheEntry.assemble(CacheEntry.java:116) at org.hibernate.cache.entry.CacheEntry.assemble(CacheEntry.java:82) at org.hibernate.event.def.DefaultLoadEventListener.assembleCacheEntry(DefaultLoadEventListener.java:553) at org.hibernate.event.def.DefaultLoadEventListener.loadFromSecondLevelCache(DefaultLoadEventListener.java:508) at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:357) at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139) at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:179) at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103) at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878) at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:557) at org.hibernate.type.ManyToOneType.assemble(ManyToOneType.java:196) at org.hibernate.cache.StandardQueryCache.get(StandardQueryCache.java:130) at org.hibernate.loader.Loader.getResultFromQueryCache(Loader.java:2152) at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2117) at org.hibernate.loader.Loader.list(Loader.java:2087) at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:95) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569) at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283) at org.springframework.orm.hibernate3.HibernateTemplate$36.doInHibernate(HibernateTemplate.java:1065) at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419) ... 77 more Caused by: java.lang.IllegalArgumentException: java.lang.ClassCastException@6be0d6 at sun.reflect.GeneratedMethodAccessor104.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:42) ... 101 more </code></pre> <p>Definition of class <code>User</code>:</p> <pre><code>@Entity @Proxy(lazy=false) @Cache(usage=CacheConcurrencyStrategy.TRANSACTIONAL) @Table(name="TB_USER" ,schema="ABSOL_USER" ) public class User implements java.io.Serializable { private String id; private String userName; private Integer rv; public User() { } public User(String userName, Integer rv) { this.userName = userName; this.rv = rv; } @GenericGenerator(name="generator", strategy="guid")@Id @GeneratedValue(generator="generator") @Column(name="USER_ID", unique=true, nullable=false) public String getId() { return this.id; } public void setId(String id) { this.id = id; } @Column(name="USER_NAME", nullable=false, length=20) public String getUserName() { return this.userName; } public void setUserName(String userName) { this.userName = userName; } @Column(name="USER_RV", precision=22, scale=0) public Integer getRv() { return this.rv; } public void setRv(Integer rv) { this.rv = rv; } } </code></pre> <p>Definition of table <code>TB_USER</code>:</p> <pre><code>CREATE TABLE "ABSOL_OWNER"."TB_USER" ( "USER_ID" RAW(16) DEFAULT SYS_GUID(), "USER_NAME" VARCHAR2(20 CHAR) NOT NULL ENABLE, "USER_RV" NUMBER NOT NULL ENABLE, PRIMARY KEY ("USER_ID") ) </code></pre> <p>Environment:</p> <ul> <li>Hibernate 3.3.2.GA</li> <li>Ehcache 2.2.0</li> <li>WebLogic Server 10.3.2</li> <li>Oracle database</li> <li>Caching User objects</li> <li>Enabled RMI cache replication via remote key invalidation</li> </ul>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload