org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of datos.Articulo.nroArticulo

Hibernate JIRA | IvanRF | 2 years ago
tip
Do you know that we can give you better hits? Get more relevant results from Samebug’s stack trace search.
  1. 0

    In mapping XML, at the time of resolving a property name to a field or getter/setter method Hibernate does not yet know the type. So if the class defines multiple potential matches based solely on name, Hibernate will not be able to adequately decide between them. At the moment it just picks the first one it sees. Unfortunately different JVMs (even different versions from the same VM vendor) returns the methods in different orders. So if we (for example) match a property named {{active}} to a getter method named {{isActive}}, check that there is also not a method named {{getActive}} of differing type. If we do find such a {{getActive}} method, throw the MappingException. ---- h4. Original Description It is the same bug as [HHH-10093|https://hibernate.atlassian.net/browse/HHH-10093], but for version 5.0.2. There you can find more information. Under Java 6 this does not happen, the exception is thrown when I use Java 8 (currently update 60). After I do a simple session.get(Class, Serializable) , when I call Transaction.commit(): It reads all the properties in the xml order without problems. After it reads the last property, the call with the issue is made. So, in DefaultFlushEntityEventListener line 135 {code:java} final Object[] values = getValues(...); {code} works fine. The issue appear on line 142 {code:java} if ( isUpdateNecessary( event, mightBeDirty ) ) { {code} *The owner object is of class Boolean with value false, instead of being an Articulo class.* {panel:title=Exception} {code:java} org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of datos.Articulo.nroArticulo at org.hibernate.property.access.spi.GetterMethodImpl.get(GetterMethodImpl.java:64) at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:223) at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:4599) at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:4311) at org.hibernate.engine.internal.ForeignKeys.isTransient(ForeignKeys.java:226) at org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:276) at org.hibernate.type.EntityType.getIdentifier(EntityType.java:455) at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:281) at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:291) at org.hibernate.type.TypeHelper.findDirty(TypeHelper.java:296) at org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:4079) at org.hibernate.event.internal.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:532) at org.hibernate.event.internal.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:215) at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:142) at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:216) at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:85) at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:38) at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1224) at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:464) at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2894) at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2270) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:485) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:146) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:230) at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) {code} {panel}

    Hibernate JIRA | 2 years ago | IvanRF
    org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of datos.Articulo.nroArticulo
  2. 0

    In mapping XML, at the time of resolving a property name to a field or getter/setter method Hibernate does not yet know the type. So if the class defines multiple potential matches based solely on name, Hibernate will not be able to adequately decide between them. At the moment it just picks the first one it sees. Unfortunately different JVMs (even different versions from the same VM vendor) returns the methods in different orders. So if we (for example) match a property named {{active}} to a getter method named {{isActive}}, check that there is also not a method named {{getActive}} of differing type. If we do find such a {{getActive}} method, throw the MappingException. ---- h4. Original Description It is the same bug as [HHH-10093|https://hibernate.atlassian.net/browse/HHH-10093], but for version 5.0.2. There you can find more information. Under Java 6 this does not happen, the exception is thrown when I use Java 8 (currently update 60). After I do a simple session.get(Class, Serializable) , when I call Transaction.commit(): It reads all the properties in the xml order without problems. After it reads the last property, the call with the issue is made. So, in DefaultFlushEntityEventListener line 135 {code:java} final Object[] values = getValues(...); {code} works fine. The issue appear on line 142 {code:java} if ( isUpdateNecessary( event, mightBeDirty ) ) { {code} *The owner object is of class Boolean with value false, instead of being an Articulo class.* {panel:title=Exception} {code:java} org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of datos.Articulo.nroArticulo at org.hibernate.property.access.spi.GetterMethodImpl.get(GetterMethodImpl.java:64) at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:223) at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:4599) at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:4311) at org.hibernate.engine.internal.ForeignKeys.isTransient(ForeignKeys.java:226) at org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:276) at org.hibernate.type.EntityType.getIdentifier(EntityType.java:455) at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:281) at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:291) at org.hibernate.type.TypeHelper.findDirty(TypeHelper.java:296) at org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:4079) at org.hibernate.event.internal.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:532) at org.hibernate.event.internal.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:215) at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:142) at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:216) at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:85) at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:38) at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1224) at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:464) at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2894) at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2270) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:485) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:146) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:230) at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65) {code} {panel}

    Hibernate JIRA | 2 years ago | IvanRF
    org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of datos.Articulo.nroArticulo
  3. 0

    getting hibernate error IllegalArgumentException occurred calling getter of ..LmsAdministrator.id

    Stack Overflow | 2 years ago | Basit
    org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of com.softech.vu360.lms.entities.LmsAdministrator.id
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. org.hibernate.PropertyAccessException

      IllegalArgumentException occurred calling getter of datos.Articulo.nroArticulo

      at org.hibernate.property.access.spi.GetterMethodImpl.get()
    2. org.hibernate.property
      GetterMethodImpl.get
      1. org.hibernate.property.access.spi.GetterMethodImpl.get(GetterMethodImpl.java:64)
      1 frame
    3. Hibernate
      JdbcCoordinatorImpl.beforeTransactionCompletion
      1. org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:223)
      2. org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:4599)
      3. org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:4311)
      4. org.hibernate.engine.internal.ForeignKeys.isTransient(ForeignKeys.java:226)
      5. org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:276)
      6. org.hibernate.type.EntityType.getIdentifier(EntityType.java:455)
      7. org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:281)
      8. org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:291)
      9. org.hibernate.type.TypeHelper.findDirty(TypeHelper.java:296)
      10. org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:4079)
      11. org.hibernate.event.internal.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:532)
      12. org.hibernate.event.internal.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:215)
      13. org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:142)
      14. org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:216)
      15. org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:85)
      16. org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:38)
      17. org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1224)
      18. org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:464)
      19. org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2894)
      20. org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2270)
      21. org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:485)
      21 frames
    4. org.hibernate.resource
      JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit
      1. org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:146)
      2. org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38)
      3. org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:230)
      3 frames
    5. Hibernate
      TransactionImpl.commit
      1. org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65)
      1 frame