Description
Steps to reproduce:
1) Open class GridCacheAbstractFullApiSelfTest
2) Add the field:
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!"); } };
3) Add the following test and observe that correct EntryProcessorException is thrown:
public void testTransformException() throws Exception { IgniteCache<String, Integer> cache = jcache().withAsync(); cache.invoke("key2", ERR_PROCESSOR); cache.future().get(); }
4) Modify the test as follows and observe that now incorrect RuntimeException is thrown and EntryProcessorException is lost:
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(); }
Attachments
Issue Links
- relates to
-
IGNITE-1098 IgniteCache.invoke() throws synchronous exception in async mode.
- Closed