Java Caching System [JCS] неожиданное поведение

Доброе утро,

Я использую JCS 2.2, и у меня неожиданное поведение. Возможно, это что-то концептуальное, но лучше спросить у экспертов.

я делаю

int id = 1;
int pid = 2; 
// here I have an unconfigured instance, 
// but the issue will be there also with a configured lru in memory cache
CompositeCacheManager ccm = CompositeCacheManager.getUnconfiguredInstance();
CompositeCache<Integer, Room> c = ccm.getCache("test");

// I create a new instance of a "Room"
Room r = new Room(id);

// I create a cache element filled with "Room"
ICacheElement<Integer, Room> ce = new CacheElement<>("test", id, r);

// I put a "Room" inside the cache [nobody sets any room's properties ]
c.update(ce);

// here I take the original object just to set a new property
r.setRoomProperty(new RoomProperty(pid));

// here I get the object previously stored into the cache
ICacheElement<Integer, Room> ce2 = c.get(id);

// here assertions fail
assert ce2.getVal().getProperty() == null
assert ce2.getVal().getProperty() != r.getProperty()
assert !ce2.getVal().equals(r);

для меня это неожиданно. Объект внутри кэша должен быть исходным, а не измененным экземпляром. Я ожидаю, что метод обновления хранит "снимок" объекта внутри кэша, а не только ссылку.

По вашему мнению... это недоразумение [мной], неправильная конфигурация или неожиданное поведение?

[PS. Внедрение Apache Ignite в JCache работает, как я и ожидал]

есть идеи?

Спасибо всем

0 ответов

Другие вопросы по тегам