You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Sergey Lemekhov (JIRA)" <ji...@apache.org> on 2016/06/02 10:44:59 UTC
[jira] [Created] (IGNITE-3235) Failed to initialize primitive
boolean cache property of superclass
Sergey Lemekhov created IGNITE-3235:
---------------------------------------
Summary: Failed to initialize primitive boolean cache property of superclass
Key: IGNITE-3235
URL: https://issues.apache.org/jira/browse/IGNITE-3235
Project: Ignite
Issue Type: Bug
Components: cache
Affects Versions: 1.5.0.final
Reporter: Sergey Lemekhov
Priority: Minor
When a superclass of a cache class contains a primitive boolean field marked with {{@QuerySqlField}} annotation the cache initialization fails with an exception:
{{org.apache.ignite.IgniteCheckedException: Failed to initialize property '<propertyName>' for key class '<key class>' and value class 'value class'. Make sure that one of these classes contains respective getter method or field.}}
For example:
{code}
public class Base {
@QuerySqlField
private boolean flag;
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
}
public class Derived extends Base {
private String field;
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
}
{code}
This related to method {{org.apache.ignite.internal.processors.query.GridQueryProcessor#buildClassProperty(boolean, java.lang.Class<?>, java.lang.String, java.lang.Class<?>, java.util.Map<java.lang.String,java.lang.String>, org.apache.ignite.internal.processors.cache.CacheObjectContext)}}.
Method expects that all fields accessors start with "get" but for primitive boolean fields usually the "is" prefix is used.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)