[
https://issues.apache.org/jira/browse/OPENJPA-2448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13808095#comment-13808095
]
Rick Curtis commented on OPENJPA-2448:
--------------------------------------
> We have following error without any changes on application or other related
> liberalizes.
I don't follow you. So you have made no changes to your environment and this
problem just randomly started happening? Is this something that you create
recreate easily?
Also, what is the query that you're executing?
> java.lang.Integer cannot be cast to java.lang.Long
> --------------------------------------------------
>
> Key: OPENJPA-2448
> URL: https://issues.apache.org/jira/browse/OPENJPA-2448
> Project: OpenJPA
> Issue Type: Bug
> Components: kernel
> Affects Versions: 1.2.2
> Environment: SLES 11
> JRE 6 U15
> Glassfish 2.1.1
> Reporter: hm
> Priority: Critical
>
> We have following error without any changes on application or other related
> liberalizes.
> <openjpa-1.2.2-r422266:898935 nonfatal general error>
> org.apache.openjpa.persistence.PersistenceException: java.lang.Integer cannot
> be cast to java.lang.Long
> at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:894)
> at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:793)
> at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:986)
> at
> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:278)
> at
> org.apache.openjpa.jdbc.sql.SelectImpl$SelectResult.load(SelectImpl.java:2413)
> at
> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:272)
> at
> org.apache.openjpa.jdbc.kernel.InstanceResultObjectProvider.getResultObject(InstanceResultObjectProvider.java:59)
> at org.apache.openjpa.kernel.QueryImpl.singleResult(QueryImpl.java:1294)
> at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1221)
> at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
> at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:805)
> at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:775)
> at
> org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:533)
> at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:252)
> at
> org.apache.openjpa.persistence.QueryImpl.getSingleResult(QueryImpl.java:317)
> this is my persistence.xml file:
> <persistence xmlns="http://java.sun.com/xml/ns/persistence"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
> http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
> version="1.0">
> <persistence-unit name="pu-core90" transaction-type="JTA">
>
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> <jta-data-source>jdbc/coreDS</jta-data-source>
> <mapping-file>META-INF/orm.xml</mapping-file>
> ...
> <class>com.core90.da.UserSession</class>
> ...
> <properties>
> <property name="openjpa.jdbc.DBDictionary"
>
> value="oracle(batchLimit=0,maxEmbeddedBlobSize=-1,maxEmbeddedClobSize=-1)" />
>
> <property name="openjpa.jdbc.SynchronizeMappings"
>
> value="buildSchema(foreignKeys=true,schemaAction='none')"/>
> <property name="openjpa.jdbc.MappingDefaults"
> value="ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict"/>
> <property name="openjpa.RestoreState" value="all"/>
>
> <property name="openjpa.TransactionMode" value="managed" />
> <property name="openjpa.ManagedRuntime"
> value="jndi(TransactionManagerName=java:appserver/TransactionManager)" />
> <property name="openjpa.DataCache" value="false"/>
> <property name="openjpa.RemoteCommitProvider" value="sjvm" />
> <property name="openjpa.IgnoreChanges" value="true" />
>
> </properties>
>
> </persistence-unit>
>
> </persistence>
> this is my entity class:
> @Entity
> @Table(name="SESSION",
> uniqueConstraints={@javax.persistence.UniqueConstraint(columnNames={"SESUID"})})
> @DataCache(enabled=false)
> public class UserSession {
> @Id
> @Column(name="ID")
> private Long id;
> @Column(name="CRTTIM")
> @Temporal(TemporalType.TIMESTAMP)
> private Date loginDate;
> @Column(name="TIMOUT")
> private Long timeout;
> @Column(name="SESUID", unique=true)
> private String sessionId;
> @Column(name="LSTACCSTIM")
> @Temporal(TemporalType.TIMESTAMP)
> private Date lastAccessTime;
> @Column(name="CLNTIP")
> private String clientIP;
> ...
> }
> we have old version of this entity that located in another class and there is
> a bit difference in timeout variable(data type is Integer). is this
> difference lead to this issue? please consider that there isn't any any
> scenario in application that calls UserSessionOld class.
> @Entity
> @Table(name="SESSION",
> uniqueConstraints={@javax.persistence.UniqueConstraint(columnNames={"SESUID"})})
> @DataCache(enabled=false)
> public class UserSessionOld {
> @Id
> @Column(name="ID")
> private Long id;
> @Column(name="CRTTIM")
> @Temporal(TemporalType.TIMESTAMP)
> private Date loginDate;
> @Column(name="TIMOUT")
> private Integer timeout;
> @Column(name="SESUID", unique=true)
> private String sessionId;
> @Column(name="LSTACCSTIM")
> @Temporal(TemporalType.TIMESTAMP)
> private Date lastAccessTime;
> @Column(name="CLNTIP")
> private String clientIP;
> ...
> }
--
This message was sent by Atlassian JIRA
(v6.1#6144)