[ https://issues.apache.org/jira/browse/IGNITE-4103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15606618#comment-15606618 ]
Valentin Kulichenko commented on IGNITE-4103: --------------------------------------------- Hi Saikat, Generally, you should not throw runtime exception within internals ({{IgniteException}} is created to be thrown from public API only). Can you try to rethrow {{IgniteCheckedException}} from this method? How much refactoring will it require? > IgniteDataStreamer doesn't throw exception if cache is destroyed > ---------------------------------------------------------------- > > Key: IGNITE-4103 > URL: https://issues.apache.org/jira/browse/IGNITE-4103 > Project: Ignite > Issue Type: Bug > Components: cache > Affects Versions: 1.7 > Reporter: Valentin Kulichenko > Assignee: Saikat Maitra > Priority: Critical > Fix For: 1.8 > > Attachments: StreamerTest.java > > > Test reproducing the issue is attached. > When a streamer streams the data and someone concurrently destroys the cache, > {{addData}} doesn't throw an exception. Code continues to work and a lot of > messages like this appear in the log: > {noformat} > [12:20:38,451][ERROR][main][CacheObjectBinaryProcessorImpl] Failed to get > partition > {noformat} > The problematic code is in {{IgniteCacheObjectProcessorImpl.partition(...)}} > method: > {code} > try { > return cctx != null ? > cctx.affinity().partition(obj, false) : > ctx.kernalContext().affinity().partition0(ctx.cacheName(), obj, null); > } > catch (IgniteCheckedException e) { > U.error(log, "Failed to get partition"); > return -1; > } > {code} > There are two issues here: > # Exception is completely ignored, it's not even printed out in {{U.error}}. > # The exception should be actually rethrown so that streamer can stop adding > data. -- This message was sent by Atlassian JIRA (v6.3.4#6332)