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)

Reply via email to