You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Denis Mekhanikov (Jira)" <ji...@apache.org> on 2020/02/19 11:35:00 UTC

[jira] [Created] (IGNITE-12702) Print warning when a cache value contains @AffinityKeyMapped annotation

Denis Mekhanikov created IGNITE-12702:
-----------------------------------------

             Summary: Print warning when a cache value contains @AffinityKeyMapped annotation
                 Key: IGNITE-12702
                 URL: https://issues.apache.org/jira/browse/IGNITE-12702
             Project: Ignite
          Issue Type: Improvement
          Components: cache
            Reporter: Denis Mekhanikov


Consider the following code snippet:
{code:java}
public class WrongAffinityExample {
    public static void main(String[] args) {
        Ignite ignite = Ignition.start("config/ignite.xml");

        IgniteCache<EmployeeKey, EmployeeValue> cache = ignite.getOrCreateCache("employees");

        EmployeeKey key = new EmployeeKey(1);
        EmployeeValue value = new EmployeeValue(1, "Denis");
        cache.put(key, value);
    }

    public static class EmployeeKey {
        private int id;

        public EmployeeKey(int id) {
            this.id = id;
        }
    }

    public static class EmployeeValue {
        @AffinityKeyMapped
        int departmentId;
        String name;

        public EmployeeValue(int departmentId, String name) {
            this.departmentId = departmentId;
            this.name = name;
        }
    }
}
{code}
Note, that {{EmployeeValue}} contains an {{@AffinityKeyMapped}} annotation, which doesn't have any effect, since it's specified in a value, and not in a key.

Such mistake is simple to make and pretty hard to track down.
 This configuration should trigger a warning message printed in log to let the user know that this affinity key configuration is not applied.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)