[ https://issues.apache.org/jira/browse/IGNITE-3133?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15572235#comment-15572235 ]
Dmitriy Govorukhin commented on IGNITE-3133: -------------------------------------------- Issue in code, because if use cache in clouse compute, cache will serialize too. See try { } scope. {code:title=CacheNodeFilterExample.java|borderStyle=solid} ignite.compute().broadcast(new IgniteRunnable() { @IgniteInstanceResource Ignite ignite; @Override public void run() { IgniteTransactions txs = ignite.transactions(); try (Transaction tx = txs.txStart()) { IgniteCache<Integer, Integer> cache = ignite.cache(RED_ONLY_CACHE); cache.put(1, 2); } // Size must be 0 on the nodes where the cache is not deployed. System.out.println("Red cache local size: " + cache.localSize()); } });; {code} Correct code. {code:title=CacheNodeFilterExample.java|borderStyle=solid} ignite.compute().broadcast(new IgniteRunnable() { @IgniteInstanceResource Ignite ignite; @Override public void run() { IgniteTransactions txs = ignite.transactions(); try (Transaction tx = txs.txStart()) { IgniteCache<Integer, Integer> cache = ignite.cache(RED_ONLY_CACHE); cache.put(1, 2); System.out.println("Red cache local size: " + cache.localSize()); } } });; {code} > Unable to get a reference to a cache inside TX on a node that is filtered out > by a node filter > ---------------------------------------------------------------------------------------------- > > Key: IGNITE-3133 > URL: https://issues.apache.org/jira/browse/IGNITE-3133 > Project: Ignite > Issue Type: Bug > Components: cache > Affects Versions: 1.5.0.final > Reporter: Denis Magda > Assignee: Dmitriy Govorukhin > Fix For: 1.8 > > Attachments: CacheNodeFilter.java, CacheNodeFilterExample.java > > > It's impossible to get a reference to a cache (Ignite.cache("name")) inside > of a transaction on a node that is filtered out with > CacheConfiguration.nodeFilter (doesn't hold cache data). The following > exception happens. > {noformat} > Caused by: java.lang.reflect.InvocationTargetException > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.apache.ignite.marshaller.optimized.OptimizedObjectInputStream.readExternalizable(OptimizedObjectInputStream.java:527) > ... 32 more > Caused by: java.io.InvalidObjectException: Failed to find cache for name: > red_cache > at > org.apache.ignite.internal.processors.cache.GridCacheContext.readResolve(GridCacheContext.java:2051) > ... 37 more > Caused by: java.lang.IllegalStateException: Failed to find cache for name: > red_cache > at > org.apache.ignite.internal.processors.cache.GridCacheContext.readResolve(GridCacheContext.java:2046) > ... 37 more > {noformat} > To reproduce: > - start ExampleNodeStartup > - start attached CacheNodeFilterExample -- This message was sent by Atlassian JIRA (v6.3.4#6332)