Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-6671

[Web Console] Wrong java type used in generated config from DB schema

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.2
    • 2.4
    • None
    • None

    Description

      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:

       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
      

      This should be checked for all supported databases.

      Attachments

        Activity

          People

            pkonstantinov Pavel Konstantinov
            dkarachentsev Dmitry Karachentsev
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: