Any cache can be destroyed after proxy is created, so any cache may become unexistent at any moment. So, I would still allow proxy creation for unexistent caches, but throw an exception if cache does not exist at the moment of proxy method call.
--Yakov 2015-11-12 16:01 GMT+03:00 Artem Shutak <[email protected]>: > Igniters, > > I'm working on https://issues.apache.org/jira/browse/IGNITE-1355. > > I want to hear a community opinion what should do Ignite in case when user > uses Affinity for nonexistent cache? Current implementation returns > AffinityProxy on a call of Ignite.affinity("nonexistent_cache") and > AffinityProxy throws NPE on a call of any method if cache has not been > created yet. > > I see next possible decisions: > - Ignite.affinity("nonexistent_cache") can return 'null' instead of > AffinityProxy like Ignite does it for Ignite.cache("nonexistent_cache"). > But it breaks backward compatibility. > - AffinityProxy methods can return a special value like 0 for > 'partitions()' method and empty array for 'primaryPartitions(ClusterNode)' > method. > - AffinityProxy methods can throw Exception that cache does not exist. > > I vote for the second one. > > Thoughts? > > Thanks, > -- Artem -- >
