[
https://issues.apache.org/jira/browse/IGNITE-6671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16216470#comment-16216470
]
Vasiliy Sisko commented on IGNITE-6671:
---------------------------------------
Fixed JSON serialisation of big numbers to show on web console.
> [Web Console] Wrong java type used in generated config from DB schema
> ---------------------------------------------------------------------
>
> Key: IGNITE-6671
> URL: https://issues.apache.org/jira/browse/IGNITE-6671
> Project: Ignite
> Issue Type: Bug
> Security Level: Public(Viewable by anyone)
> Affects Versions: 2.2
> Reporter: Dmitry Karachentsev
> Assignee: Vasiliy Sisko
> Fix For: 2.4
>
>
> We should be confident that java types in generated config are able to fit in
> values from DB. For example, WC generates short for Oracle's NUMBER(5), when
> short could be max 32767, but NUMBER(5) - 99999.
> That may produce errors like below during DB import:
> {noformat}
> Exception in thread "main" javax.cache.integration.CacheLoaderException:
> Failed to load cache: test
> at
> org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.loadCache(CacheAbstractJdbcStore.java:798)
> at
> org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadCache(GridCacheStoreManagerAdapter.java:502)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter.localLoadCache(GridDhtCacheAdapter.java:486)
> at
> org.apache.ignite.internal.processors.cache.GridCacheProxyImpl.localLoadCache(GridCacheProxyImpl.java:217)
> at
> org.apache.ignite.internal.processors.cache.GridCacheAdapter$LoadCacheJob.localExecute(GridCacheAdapter.java:5439)
> at
> org.apache.ignite.internal.processors.cache.GridCacheAdapter$LoadCacheJobV2.localExecute(GridCacheAdapter.java:5488)
> at
> org.apache.ignite.internal.processors.cache.GridCacheAdapter$TopologyVersionAwareJob.execute(GridCacheAdapter.java:6103)
> at
> org.apache.ignite.compute.ComputeJobAdapter.call(ComputeJobAdapter.java:132)
> at
> org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1842)
> at
> org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:566)
> at
> org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6621)
> at
> org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:560)
> at
> org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:489)
> at
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> at
> org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1114)
> at
> org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1907)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1257)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:885)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.access$2100(GridIoManager.java:114)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager$7.run(GridIoManager.java:802)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: javax.cache.CacheException: Failed to read binary object:
> org.apache.TestModel
> at
> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStore.buildBinaryObject(CacheJdbcPojoStore.java:255)
> at
> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStore.buildObject(CacheJdbcPojoStore.java:136)
> at
> org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore$1.call(CacheAbstractJdbcStore.java:463)
> at
> org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore$1.call(CacheAbstractJdbcStore.java:430)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> ... 3 more
> Caused by: java.sql.SQLException: Numeric Overflow
> at
> oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4170)
> at
> oracle.jdbc.driver.NumberCommonAccessor.getShort(NumberCommonAccessor.java:311)
> at
> oracle.jdbc.driver.GeneratedStatement.getShort(GeneratedStatement.java:305)
> at
> oracle.jdbc.driver.GeneratedScrollableResultSet.getShort(GeneratedScrollableResultSet.java:879)
> at
> org.apache.ignite.cache.store.jdbc.JdbcTypesDefaultTransformer.getColumnValue(JdbcTypesDefaultTransformer.java:84)
> at
> org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStore.buildBinaryObject(CacheJdbcPojoStore.java:247)
> ... 7 more
> {noformat}
> *This should be checked for all supported databases.*
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)