You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2015/07/06 17:02:04 UTC

[jira] [Created] (IGNITE-1097) IgniteFuture.chain() unwraps exceptions incorrectly.

Vladimir Ozerov created IGNITE-1097:
---------------------------------------

             Summary: IgniteFuture.chain() unwraps exceptions incorrectly.
                 Key: IGNITE-1097
                 URL: https://issues.apache.org/jira/browse/IGNITE-1097
             Project: Ignite
          Issue Type: Bug
          Components: general
    Affects Versions: 1.1.4
            Reporter: Vladimir Ozerov
            Priority: Critical
             Fix For: sprint-7


Steps to reproduce:
1) Open class GridCacheAbstractFullApiSelfTest
2) Add the field: 
{code}
public static final CacheEntryProcessor<String, Integer, String> ERR_PROCESSOR =
        new CacheEntryProcessor<String, Integer, String>() {
            @Override public String process(MutableEntry<String, Integer> e, Object... args) {
                throw new RuntimeException("Failed!");
            }
        };
{code}

3) Add the following test and observe that correct EntryProcessorException is thrown:
{code}
public void testTransformException() throws Exception {
    IgniteCache<String, Integer> cache = jcache().withAsync();
    cache.invoke("key2", ERR_PROCESSOR);
    cache.future().get();
}
{code}

4) Modify the test as follows and observe that now incorrect RuntimeException is thrown and EntryProcessorException is lost:
{code}
public void testTransformException() throws Exception {
    IgniteCache<String, Integer> cache = jcache().withAsync();
    cache.invoke("key2", ERR_PROCESSOR);
    IgniteFuture fut = cache.future().chain(new IgniteClosure<IgniteFuture, Object>() {
        @Override public Object apply(IgniteFuture o) {
            return o.get();
        }
    });

    fut.get();
}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)