[ https://issues.apache.org/jira/browse/IGNITE-11161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sergey Antonov resolved IGNITE-11161. ------------------------------------- Resolution: Duplicate > Thin client's cache get by user defined key returns null > -------------------------------------------------------- > > Key: IGNITE-11161 > URL: https://issues.apache.org/jira/browse/IGNITE-11161 > Project: Ignite > Issue Type: Bug > Components: thin client > Affects Versions: 2.7 > Reporter: Sergey Antonov > Assignee: Sergey Antonov > Priority: Critical > Fix For: 2.8 > > > Scenario: > * Start server node with predefined cache and activate cluster. > * Connect thin java client to cluster > * Put entry to the cache with user defined key (custom class) from server > node. > * Try get value from thin client by the same key. > Expected: > Returns putted value > Actual: > Returns null > Reproducer: > {code:java} > import java.util.Objects; > import org.apache.ignite.Ignition; > import org.apache.ignite.client.IgniteClient; > import org.apache.ignite.configuration.CacheConfiguration; > import org.apache.ignite.configuration.ClientConfiguration; > import org.apache.ignite.configuration.ClientConnectorConfiguration; > import org.apache.ignite.configuration.DataStorageConfiguration; > import org.apache.ignite.configuration.IgniteConfiguration; > import org.apache.ignite.internal.IgniteEx; > import org.apache.ignite.internal.util.typedef.internal.S; > import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; > import org.junit.Test; > import org.junit.runner.RunWith; > import org.junit.runners.JUnit4; > import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC; > @RunWith(JUnit4.class) > public class ClientTestGet extends GridCommonAbstractTest { > @Override protected IgniteConfiguration getConfiguration(String > igniteInstanceName) throws Exception { > return super.getConfiguration(igniteInstanceName) > .setClientConnectorConfiguration(new > ClientConnectorConfiguration()) > .setDataStorageConfiguration(new DataStorageConfiguration()) > .setCacheConfiguration(new > CacheConfiguration().setName(DEFAULT_CACHE_NAME).setWriteSynchronizationMode(FULL_SYNC)); > } > @Override protected void beforeTest() throws Exception { > super.beforeTest(); > cleanPersistenceDir(); > } > @Test > public void testGet() throws Exception { > IgniteConfiguration serverCfg = getConfiguration("server"); > IgniteEx server = startGrid(serverCfg); > server.cluster().active(true); > IgniteClient client = Ignition.startClient( > new ClientConfiguration().setAddresses("127.0.0.1:" + > serverCfg.getClientConnectorConfiguration().getPort()) > ); > server.cache(DEFAULT_CACHE_NAME).put(new Key(0), 0); > Object serverVal = server.cache(DEFAULT_CACHE_NAME).get(new Key(0)); > Object clientVal = client.cache(DEFAULT_CACHE_NAME).get(new Key(0)); > assertEquals(serverVal, clientVal); > } > private static class Key { > private final int i; > private Key(int i) { > this.i = i; > } > /** {@inheritDoc} */ > @Override public boolean equals(Object o) { > if (this == o) > return true; > if (o == null || getClass() != o.getClass()) > return false; > return i == ((Key)o).i; > } > /** {@inheritDoc} */ > @Override public int hashCode() { > return Objects.hash(i); > } > /** {@inheritDoc} */ > @Override public String toString() { > return S.toString(Key.class, this); > } > } > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)