Return-Path: X-Original-To: apmail-openjpa-dev-archive@www.apache.org Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 442221093D for ; Wed, 30 Oct 2013 11:24:27 +0000 (UTC) Received: (qmail 96732 invoked by uid 500); 30 Oct 2013 11:24:26 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 96689 invoked by uid 500); 30 Oct 2013 11:24:25 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 96675 invoked by uid 99); 30 Oct 2013 11:24:25 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Oct 2013 11:24:25 +0000 Date: Wed, 30 Oct 2013 11:24:25 +0000 (UTC) From: "hm (JIRA)" To: dev@openjpa.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Comment Edited] (OPENJPA-2448) java.lang.Integer cannot be cast to java.lang.Long MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/OPENJPA-2448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13808979#comment-13808979 ] hm edited comment on OPENJPA-2448 at 10/30/13 11:23 AM: -------------------------------------------------------- we don't change any things our environment we have many query and +300 entities/tables in our database and this error occurred only in SESSION table the query is: select us from UserSession as us where us.sessionId= ?1 Exception Cause: Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long at com.core90.da.UserSession.pcReplaceField(UserSession.java) at org.apache.openjpa.kernel.StateManagerImpl.replaceField(StateManagerImpl.java:3025) at org.apache.openjpa.kernel.StateManagerImpl.storeObjectField(StateManagerImpl.java:2457) at org.apache.openjpa.kernel.StateManagerImpl.storeField(StateManagerImpl.java:2553) at org.apache.openjpa.kernel.StateManagerImpl.storeField(StateManagerImpl.java:788) at org.apache.openjpa.kernel.StateManagerImpl.store(StateManagerImpl.java:784) at org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.load(HandlerFieldStrategy.java:188) at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:813) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1060) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1012) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:378) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:278) at org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111) at org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57) at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:913) at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:871) was (Author: hmmahboobi@gmail.com): we don't change any things our environment we have many query and +300 entities/tables in our database and this error occurred only in SESSION table the query is: select us from UserSession as us where us.id = ?1 Exception Cause: Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long at com.core90.da.UserSession.pcReplaceField(UserSession.java) at org.apache.openjpa.kernel.StateManagerImpl.replaceField(StateManagerImpl.java:3025) at org.apache.openjpa.kernel.StateManagerImpl.storeObjectField(StateManagerImpl.java:2457) at org.apache.openjpa.kernel.StateManagerImpl.storeField(StateManagerImpl.java:2553) at org.apache.openjpa.kernel.StateManagerImpl.storeField(StateManagerImpl.java:788) at org.apache.openjpa.kernel.StateManagerImpl.store(StateManagerImpl.java:784) at org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.load(HandlerFieldStrategy.java:188) at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:813) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1060) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1012) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:378) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:278) at org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111) at org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57) at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:913) at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:871) > 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. > 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: > 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"> > > org.apache.openjpa.persistence.PersistenceProviderImpl > jdbc/coreDS > META-INF/orm.xml > ... > com.core90.da.UserSession > ... > > value="oracle(batchLimit=0,maxEmbeddedBlobSize=-1,maxEmbeddedClobSize=-1)" /> > > value="buildSchema(foreignKeys=true,schemaAction='none')"/> > > > > > > > > > > > > > > > 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)