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)