Yes, of course I'm using "cache.withKeepBinary()". Below is my exact
reproducer:
final URL configUrl =
getClass().getClassLoader().getResource("example-ignite.xml");
final Ignite ignite = Ignition.start(configUrl);
final CacheConfiguration<EmployeeId, Employee> cacheConfig = new
CacheConfiguration<>("Employee");
cacheConfig.setIndexedTypes(EmployeeId.class, Employee.class);
IgniteCache<EmployeeId, Employee> cache =
ignite.getOrCreateCache(cacheConfig);
IgniteCache<BinaryObject, BinaryObject> employeeCache =
cache.withKeepBinary();
try {
BinaryObjectBuilder key1Builder =
ignite.binary().builder(EmployeeId.class.getName());
key1Builder.setField("employeeNumber", 65348765, Integer.class);
key1Builder.setField("departmentNumber", 123, Integer.class);
BinaryObject key1 = key1Builder.build();
BinaryObjectBuilder emp1Builder =
ignite.binary().builder(Employee.class.getName());
emp1Builder.setField("firstName", "John", String.class);
emp1Builder.setField("lastName", "Smith", String.class);
emp1Builder.setField("id", key1);
BinaryObject emp1 = emp1Builder.build();
employeeCache.put(key1, emp1);
BinaryObject emp2 = employeeCache.get(key1);
assertThat(emp2).isNotNull();
assertThat(emp2).isEqualTo(emp1);
employeeCache.put(key1, emp1);
BinaryObject key2 = emp1.field("id");
employeeCache.put(key2, emp1); // CRASH!!! CorruptedTreeException: B+Tree
is corrupted
//employeeCache.put(key2.clone(), emp1); // CRASH!!!
CorruptedTreeException: B+Tree is corrupted
employeeCache.put(key2.toBuilder().build(), emp1); // OK!
} finally {
Ignition.stop(true);
}
------------
Where the data types are the following:
public interface EmployeeId {
int getEmployeeNumber();
void setEmployeeNumber(int employeeNumber);
int getDepartmentNumber();
void setDepartmentNumber(int departmentNumber);
}
public interface Employee {
EmployeeId getId();
void setId(EmployeeId id);
String getFirstName();
void setFirstName(String firstName);
String getLastName();
void setLastName(String lastName);
Date getBirthDate();
void setBirthDate(Date birthDate);
...
}
--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/