[jira] [Created] (IGNITE-6671) [Web Console] Wrong java type used in generated config from DB schema

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-6671) [Web Console] Wrong java type used in generated config from DB schema

Anton Vinogradov (Jira)
Dmitry Karachentsev created IGNITE-6671:
-------------------------------------------

             Summary: [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
             Fix For: 2.3


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)