Hi Shaun,
our datatype is Long, so this should be big enough for this
number.
I found out some more details, and I think we ran into a problem
similar to a known bug we logged in November (id 294289) referring to queries
with negative or big numbers.
There the bug is described for negative and big numbers in IN
clauses, but it looks like we have to “enhance” the bug also on
simple “id = 1234455656565” cases.
In our current issue it helps to use named parameters, as described
in the logged bug.
I suppose it makes sense to give a higher priority to this bug, I
added my comment and my vote.
Regards, Markus
Stacktrace:
[EL Fine]: 2010-02-08
13:10:19.203--ClientSession(1716384)--Connection(19182761)--SELECT
BUYING.SEQ_CHANGETRACKINGLOGENTR
XTVAL FROM DUAL
WARN [main] (Log4jLogger.java:91) - invoke failed with
exception of class org.springframework.aop.framework.ReflectiveMe
Invocation#public abstract java.lang.Object
com.ottogroup.buying.sharedkernel.base.Crud.attach(com.ottogroup.buying.share
nel.base.QueryConfiguration,java.lang.Object) with
[QueryConfiguration(attach, fetchPlan:), ChangeTrackingLogEntry(null)]
rew
java.lang.IllegalArgumentException: An exception occurred while
creating a query in EntityManager:
Exception Description: General Problem parsing the query [SELECT
OBJECT(this) FROM ChangeTrackingLogEntry this WHERE ((
.id = 2640429949))]. The parser returned the following [For
input string: "2640429949"].
Internal Exception: java.lang.NumberFormatException: For input
string: "2640429949"
at
org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1241)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
java.lang.reflect.Method.invoke(Method.java:585)
at
org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntit
agerCreator.java:198)
at
$Proxy7.createQuery(Unknown Source)
at
com.ottogroup.buying.sharedkernel.base.eclipselink.EclipselinkJpaQuery.buildQuery(EclipselinkJpaQuery.java:530
at
com.ottogroup.buying.sharedkernel.base.eclipselink.EclipselinkJpaQuery.execute(EclipselinkJpaQuery.java:428)
at
com.ottogroup.buying.sharedkernel.base.AbstractDaoImpl.reloadEntity(AbstractDaoImpl.java:777)
at
com.ottogroup.buying.sharedkernel.base.AbstractDaoImpl.typeAttach(AbstractDaoImpl.java:748)
at
com.ottogroup.buying.sharedkernel.base.AbstractDaoImpl.attach(AbstractDaoImpl.java:307)
at
com.ottogroup.buying.sharedkernel.base.AbstractDaoImpl.attach(AbstractDaoImpl.java:51)
at
com.ottogroup.buying.sharedkernel.base.BaseRepository.attach(BaseRepository.java:141)
at
com.ottogroup.buying.sharedkernel.base.BaseRepository.attach(BaseRepository.java:23)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
java.lang.reflect.Method.invoke(Method.java:585)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:1
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at
com.ottogroup.buying.sharedkernel.base.error.AopMessageHandler.invoke(AopMessageHandler.java:38)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at
com.ottogroup.buying.sharedkernel.base.error.CustomTransactionInterceptor.invoke(CustomTransactionInterceptor.
:81)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at
$Proxy195.attach(Unknown Source)
at
com.ottogroup.buying.sharedkernel.masterdatachange.ChangeTracker.storeChangeTrackingLogEntries(ChangeTracker.j
307)
at
com.ottogroup.buying.sharedkernel.masterdatachange.ChangeTracker.trackChanges(ChangeTracker.java:177)
at
com.ottogroup.buying.sharedkernel.base.eclipselink.PreCommitUnitOfWorkListener.preCommitUnitOfWork(PreCommitUn
WorkListener.java:47)
at
org.eclipse.persistence.sessions.SessionEventManager.preCommitUnitOfWork(SessionEventManager.java:531)
at
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commit(UnitOfWorkImpl.java:1064)
at
org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commitInternal(EntityTransactionImpl.ja
7)
at
org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:63)
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:456)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTrans
onManager.java:732)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionM
er.java:701)
at
org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at
com.ottogroup.buying.sharedkernel.base.it.Environment$1.execute(Environment.java:73)
at
com.ottogroup.buying.sharedkernel.base.it.AbstractIntegrationTestCase.executeTransactioned(AbstractIntegration
Case.java:465)
at
com.ottogroup.buying.sharedkernel.item.itemeffort.RedPriceIT.testAddRedPrice(RedPriceIT.java:38)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
java.lang.reflect.Method.invoke(Method.java:585)
at
junit.framework.TestCase.runTest(TestCase.java:154)
at
junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at
junit.framework.TestResult.runProtected(TestResult.java:124)
at
junit.framework.TestResult.run(TestResult.java:109)
at
junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at
junit.framework.TestSuite.run(TestSuite.java:203)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at
org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)
Caused by: Exception [EclipseLink-8002] (Eclipse Persistence
Services - 1.2.1.v20100114-r6267): org.eclipse.persistence.e
tions.JPQLException
Exception Description: General Problem parsing the query [SELECT
OBJECT(this) FROM ChangeTrackingLogEntry this WHERE ((
.id = 2640429949))]. The parser returned the following [For
input string: "2640429949"].
Internal Exception: java.lang.NumberFormatException: For input
string: "2640429949"
at
org.eclipse.persistence.exceptions.JPQLException.generalParsingException(JPQLException.java:123)
at
org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.addError(JPQLParser.java:247)
at
org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.parse(JPQLParser.java:135)
at
org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.buildParseTree(JPQLParser.java:94)
at
org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:166)
at
org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:141)
at
org.eclipse.persistence.internal.jpa.EJBQueryImpl.<init>(EJBQueryImpl.java:93)
at
org.eclipse.persistence.internal.jpa.EJBQueryImpl.<init>(EJBQueryImpl.java:77)
at
org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1239)
... 68 more
Caused by: java.lang.NumberFormatException: For input string:
"2640429949"
at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at
java.lang.Integer.parseInt(Integer.java:459)
at
java.lang.Integer.valueOf(Integer.java:553)
at
org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.literalNumeric(JPQLParser.java:11001)
at
org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.arithmeticPrimary(JPQLParser.java:9536)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.arithmeticFactor(JPQLParser.java:9349)
Von: eclipselink-users-bounces@xxxxxxxxxxx
[mailto:eclipselink-users-bounces@xxxxxxxxxxx] Im Auftrag von Shaun
Smith
Gesendet: Freitag, 5. Februar 2010 20:38
An: eclipselink-users@xxxxxxxxxxx
Betreff: Re: [eclipselink-users] NumberFormatException at setting id
value
Hi Markus,
Can you post a stack trace and can you describe the
situation a little more? If you have typed an id field as int or Integer
and your sequence generates a value > MAXINT I suspect you'll get
NumberFormatException when EclipseLink tries to parse that value into an
Integer. If you want to have ids larger than MAXINT then you need a data
type that can hold it.
Shaun
On 4/2/2010 11:50 AM, Hahn, Markus wrote:
Hello,
are there any
known issues with big numbers? In a persist operation, we
fill an ID from a sequence. Value ist for instance 2320149544,
thus out of
Integer scope.
EL runs into a
NumberFormatException parsing this number as an Integer.
What can I
do to avoid this? Change the mapping (almost only defaults)?
Regards, Markus
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
--

Shaun
Smith | Principal Product Manager
Phone: +19055023094
Oracle Server Technologies, Oracle TopLink
ORACLE Canada | 110 Matheson Boulevard West, Suite 100, Mississauga, Ontario |
L5R 3P4
Oracle
is committed to developing practices and products that help protect the
environment