[
https://issues.apache.org/jira/browse/GEODE-2327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15830664#comment-15830664
]
Hitesh Khamesra commented on GEODE-2327:
----------------------------------------
Here is test
@Test
public void testJSONDocWithQuery() throws Exception {
try {
Cache c = CacheFactory.getAnyInstance();
Region region = c.getRegion("primitiveKVStore");
BigInteger bi = new BigInteger("312473274897238947238741074170984");
//long bi = Integer.MAX_VALUE * 1000;
String js = "{b:\"b\", age:" + bi.toString() + ", c:\"c' go\", bb:23}";
region.put(1, JSONFormatter.fromJSON(js));
PdxInstance ret = (PdxInstance) region.get(1);
List<String> fieldNames = ret.getFieldNames();
String qs = "select * from /primitiveKVStore where age != " +
bi.longValue();
System.out.println("Return object " + qs);;
Object ob = c.getQueryService().newQuery(qs).execute();
System.out.println("Return object " + ob.getClass());;
System.out.println("Return object " + ob.toString());;
System.out.println("Return object " + qs);;
} finally {
JSONFormatter.SORT_JSON_FIELD_NAMES = false;
}
}
> Query engine doesn't handle bigInteger
> --------------------------------------
>
> Key: GEODE-2327
> URL: https://issues.apache.org/jira/browse/GEODE-2327
> Project: Geode
> Issue Type: Bug
> Components: querying
> Reporter: Hitesh Khamesra
>
> org.apache.geode.cache.query.QueryInvalidException: Syntax error in query:
> unable to parse integer: 312473274897238947238741074170984
> at
> org.apache.geode.cache.query.internal.QCompiler.compileQuery(QCompiler.java:85)
> at
> org.apache.geode.cache.query.internal.DefaultQuery.<init>(DefaultQuery.java:275)
> at
> org.apache.geode.cache.query.internal.DefaultQueryService.newQuery(DefaultQueryService.java:106)
> at
> org.apache.geode.pdx.JSONFormatterJUnitTest.testJSONDocWithQuery(JSONFormatterJUnitTest.java:372)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
> Caused by: org.apache.geode.cache.query.QueryInvalidException: unable to
> parse integer: 312473274897238947238741074170984
> at
> org.apache.geode.cache.query.internal.parse.ASTLiteral.getInt(ASTLiteral.java:74)
> at
> org.apache.geode.cache.query.internal.parse.ASTLiteral.computeValue(ASTLiteral.java:41)
> at
> org.apache.geode.cache.query.internal.parse.ASTLiteral.compile(ASTLiteral.java:135)
> at
> org.apache.geode.cache.query.internal.parse.GemFireAST.childrenCompile(GemFireAST.java:53)
> at
> org.apache.geode.cache.query.internal.parse.GemFireAST.compile(GemFireAST.java:47)
> at
> org.apache.geode.cache.query.internal.parse.ASTCompareOp.compile(ASTCompareOp.java:33)
> at
> org.apache.geode.cache.query.internal.parse.ASTSelect.compile(ASTSelect.java:56)
> at
> org.apache.geode.cache.query.internal.parse.GemFireAST.childrenCompile(GemFireAST.java:53)
> at
> org.apache.geode.cache.query.internal.parse.GemFireAST.compile(GemFireAST.java:47)
> at
> org.apache.geode.cache.query.internal.QCompiler.compileQuery(QCompiler.java:82)
> ... 28 more
> Caused by: java.lang.NumberFormatException: For input string:
> "312473274897238947238741074170984"
> at
> java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
> at java.lang.Integer.parseInt(Integer.java:583)
> at java.lang.Integer.valueOf(Integer.java:766)
> at
> org.apache.geode.cache.query.internal.parse.ASTLiteral.getInt(ASTLiteral.java:72)
> ... 37 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)