[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Unknown ordinal value for enum class

swenbarth do-not-reply at jboss.com
Mon May 26 03:42:56 EDT 2008


Hi, I'm currently using JBoss 4.0.4GA with EJB3, MySQL 5.0 and mysql-connector-java-5.0.6

I have a bean with an enumeration attribute:
 
  |     private ItemType type;
  | 
  |     @Column(name = "TYPE", nullable = false)
  |     public ItemType getType() {
  |         return type;
  |     }
  | 
  |     public void setType(ItemType type) {
  |         this.type = type;
  |     }
  | 

The Enumeration is defined as follows:


  | public enum ItemType {
  |     SERVICE, MATERIAL, SURCHARGE, PLANNED_WITHDRAWAL, ACTUAL_WITHDRAWAL, FREETEXT_TEMPLATE
  | }
  | 

This works fine most of the time. However, occasionally this very attribute is written to the DB with bogus values, and when retrieving the bean, I get the following error:
anonymous wrote : 
  | java.lang.IllegalArgumentException: Unknown ordinal value for enum class xxx.xxx.xxx.xxx.enums.ItemType: -2147483644
  | 	at org.hibernate.type.EnumType.nullSafeGet(EnumType.java:88)
  | 	at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:104)
  | 	at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
  | 	at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:1983)
  | 	at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1372)
  | 	at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1300)
  | 	at org.hibernate.loader.Loader.getRow(Loader.java:1197)
  | 	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:569)
  | 	at org.hibernate.loader.Loader.doQuery(Loader.java:689)
  | 	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
  | 	at org.hibernate.loader.Loader.loadCollection(Loader.java:1919)
  | 	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36)
  | 	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:541)
  | 	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
  | 	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1705)
  | 	at org.hibernate.collection.AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java:454)
  | 	at org.hibernate.engine.StatefulPersistenceContext.initializeNonLazyCollections(StatefulPersistenceContext.java:755)
  | 	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:229)
  | 	at org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
  | 	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
  | 	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
  | 	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2821)
  | 	at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:370)
  | 	at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:351)
  | 	at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:122)
  | 	at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:178)
  | 	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:86)
  | 	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:871)
  | 	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
  | 	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:801)
  | 	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:155)
  | ...
  | 

When I check directly in the DB, I find this strange value (-2147483644), so the exception is entirely correct. 
This problem is not reproducable, as I said the attribute is written correctly to the DB most of the time. 

Does anyone know how to approach this problem?


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4153272#4153272

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4153272



More information about the jboss-user mailing list