Hi Nikolay,

It is strange, because Cache Configuration is saved under
StoreConfiguration into persistent store cache_data file.

Did you find an anwser?

Sincerely,
Dmitriy Pavlov

вт, 26 сент. 2017 г. в 19:02, Николай Ижиков <nizhikov....@gmail.com>:

> Hello, Guys.
>
> I found that CacheConfiguration which implements Serializable contains not
> serializable fields by default.
>
> CacheConfiguration -> affMapper -> CacheDefaultBinaryAffinityKeyMapper ->
> proc -> CacheObjectBinaryProcessorImpl.
>
> Is this a bug or I miss something?
>
> Simple reproducer:
>
> ```
> public class SimpleSerializableTet extends GridCommonAbstractTest {
>     public void testRemoteFilterFactoryClient() throws Exception {
>         Ignite g = startGrid(0);
>
>         IgniteCache<Object, Object> cache =
> g.getOrCreateCache("TEST_CACHE");
>         CacheConfiguration ccfg =
> cache.getConfiguration(CacheConfiguration.class);
>
>         assertTrue(ccfg instanceof Serializable);
>         assertTrue(ccfg.getAffinityMapper() instanceof Serializable);
>
>         try (ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
>             ObjectOutput out = new ObjectOutputStream(bos);
>             out.writeObject(ccfg);
>             out.flush();
>         }
>     }
> }
>
> ```
> Exception is:
>
> ```
> java.io.NotSerializableException:
>
> org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
> ```
>
>
>
> --
> Nikolay Izhikov
> nizhikov....@gmail.com
>

Reply via email to