[
https://issues.apache.org/jira/browse/IGNITE-1094?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16093336#comment-16093336
]
Alexey Kuznetsov commented on IGNITE-1094:
------------------------------------------
[~yzhdanov] Consider
org.apache.ignite.internal.processors.cache.GridCacheProcessor#createCache()
method, which creates cache store as follows(algorithm 1 step):
{code:java}
cfgStore = cfg.getCacheStoreFactory() != null ?
cfg.getCacheStoreFactory().create() : null;
{code}
when exception arises in store creation, we can check a flag(indicating
creation failed) and continue cache creation as if creation succeedes
(pseudocode) :
{code:java}
try {
cfgStore = cfg.getCacheStoreFactory() != null ?
cfg.getCacheStoreFactory().create() : null;
}
catch (Throwable e) {
desc.cacheStoreCreationFailed(true);
}
{code}
Then in some place we can test this flag whether creation failed or not, and
continue algorithm 2 step. Do you think its an appropriate scheme?
> Ignite.createCache(CacheConfiguration) hangs if some exception occurs during
> cache initialization
> -------------------------------------------------------------------------------------------------
>
> Key: IGNITE-1094
> URL: https://issues.apache.org/jira/browse/IGNITE-1094
> Project: Ignite
> Issue Type: Bug
> Components: cache
> Reporter: Sergey Evdokimov
> Assignee: Alexey Kuznetsov
> Labels: Muted_test
> Fix For: 2.2
>
>
> User can pass broken configuration, for example, store factory that throws
> exception from create() method. I created test to demonstrate the problem.
> See IgniteDynamicCacheStartSelfTest#testBrokenStoreFactory in 'ignite-1094'
> branch
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)