[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
AW: AW: [eclipselink-users] NumberFormatException at setting id value
|
Hello Chris,
thanks for the "L" hint, this should keep away some trouble.
The stacktrace for a query like this:
"select this from Something this where this.id in (-1)"
Regards, Markus
##########################################
java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Syntax error parsing the query [SELECT OBJECT(this) FROM ItemEffort this WHERE this.id in (-1)], line 1, column 60: unexpected token [-].
Internal Exception: NoViableAltException(90!=[700:9: (itemNode= inItem ( COMMA itemNode= inItem )* | subqueryNode= subquery )])
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(SharedEntityManagerCreator.java:198)
at $Proxy6.createQuery(Unknown Source)
at com.ottogroup.buying.sharedkernel.base.jpa.ReproduceBug294289IT.testByJPQLQuery(ReproduceBug294289IT.java:66)
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 org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: Exception [EclipseLink-8025] (Eclipse Persistence Services - 1.2.1.v20100114-r6267): org.eclipse.persistence.exceptions.JPQLException
Exception Description: Syntax error parsing the query [SELECT OBJECT(this) FROM ItemEffort this WHERE this.id in (-1)], line 1, column 60: unexpected token [-].
Internal Exception: NoViableAltException(90!=[700:9: (itemNode= inItem ( COMMA itemNode= inItem )* | subqueryNode= subquery )])
at org.eclipse.persistence.exceptions.JPQLException.unexpectedToken(JPQLException.java:372)
at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.handleRecognitionException(JPQLParser.java:319)
at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.addError(JPQLParser.java:245)
at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.reportError(JPQLParser.java:362)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.inExpression(JPQLParser.java:8209)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.conditionWithNotExpression(JPQLParser.java:7879)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.simpleConditionalExpressionRemainder(JPQLParser.java:7750)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.simpleConditionalExpression(JPQLParser.java:7625)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.conditionalPrimary(JPQLParser.java:7561)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.conditionalFactor(JPQLParser.java:4507)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.conditionalTerm(JPQLParser.java:4397)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.conditionalExpression(JPQLParser.java:4323)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.whereClause(JPQLParser.java:4280)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.selectStatement(JPQLParser.java:371)
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.document(JPQLParser.java:276)
at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.parse(JPQLParser.java:133)
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)
... 25 more
Caused by: NoViableAltException(90!=[700:9: (itemNode= inItem ( COMMA itemNode= inItem )* | subqueryNode= subquery )])
at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.inExpression(JPQLParser.java:8125)
... 42 more
##########################################
-----Ursprüngliche Nachricht-----
Von: eclipselink-users-bounces@xxxxxxxxxxx [mailto:eclipselink-users-bounces@xxxxxxxxxxx] Im Auftrag von christopher delahunt
Gesendet: Montag, 8. Februar 2010 18:58
An: EclipseLink User Discussions
Betreff: Re: AW: [eclipselink-users] NumberFormatException at setting id value
Hello Markus,
If your type is a Long, you will need to specify the suffix as "id =
1234455656565l", otherwise all literals get converted to Integer by
default.
For bug 294289, can you be sure to post the exception you are getting
when you use a negative number?
Best Regards,
Chris Delahunt
Hahn, Markus wrote:
>
> 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 <mailto:eclipselink-users@xxxxxxxxxxx>
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>
>
> --
> Oracle <http://www.oracle.com>
> Shaun Smith | Principal Product Manager
> Phone: +19055023094
> Oracle Server Technologies, Oracle TopLink
> ORACLE Canada | 110 Matheson Boulevard West, Suite 100, Mississauga,
> Ontario | L5R 3P4
> Green Oracle <http://www.oracle.com/commitment>Oracle is committed to
> developing practices and products that help protect the environment
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users