Hi Team,

I am trying to define index on replicated region defined as below where 
PdxInstance is created using JsonFormatter.fromJSON(jsonString)!

Note : I don't have any domain model called 'Event.java' which is being 
converted to JSON, but I am getting Event as json string from source & that's 
what I am pushing to cache

<geode:replicated-region id="Event"
                     cache-ref="geodeCache"
                     scope="distributed-ack"
                     key-constraint="java.lang.String"
                     value-constraint="org.apache.geode.pdx.PdxInstance"
                     shortcut="REPLICATE_PERSISTENT_OVERFLOW"
                     persistent="true"
                     disk-synchronous="false"
                     disk-store-ref="event_diskstore">
</geode:replicated-region>

<geode:index id="event_indx" expression="eventId" from="/Event" 
cache-ref="geodeCache"/>


Exception:

org.apache.geode.cache.query.TypeMismatchException: The attribute or method 
name ' eventId ' could not be resolved
       at 
org.apache.geode.cache.query.internal.ExecutionContext.resolve(ExecutionContext.java:228)
       at 
org.apache.geode.cache.query.internal.CompiledID.generateCanonicalizedExpression(CompiledID.java:93)
       at 
org.apache.geode.cache.query.internal.index.FunctionalIndexCreationHelper.prepareIndexExpression(FunctionalIndexCreationHelper.java:498)
       ... 27 common frames omitted
Wrapped by: org.apache.geode.cache.query.IndexInvalidException: Invalid indexed 
expression : ' eventId '
       at 
org.apache.geode.cache.query.internal.index.FunctionalIndexCreationHelper.prepareIndexExpression(FunctionalIndexCreationHelper.java:513)
       at 
org.apache.geode.cache.query.internal.index.FunctionalIndexCreationHelper.<init>(FunctionalIndexCreationHelper.java:112)
       at 
org.apache.geode.cache.query.internal.index.IndexManager.createIndex(IndexManager.java:272)
       at 
org.apache.geode.cache.query.internal.DefaultQueryService.createIndex(DefaultQueryService.java:213)
       at 
org.apache.geode.cache.query.internal.DefaultQueryService.createIndex(DefaultQueryService.java:160)
       at 
org.apache.geode.cache.query.internal.DefaultQueryService.createIndex(DefaultQueryService.java:226)
       at 
org.apache.geode.cache.query.internal.DefaultQueryService.createIndex(DefaultQueryService.java:128)
       at 
org.springframework.data.gemfire.IndexFactoryBean.createFunctionalIndex(IndexFactoryBean.java:238)
       at 
org.springframework.data.gemfire.IndexFactoryBean.createIndex(IndexFactoryBean.java:149)
       at 
org.springframework.data.gemfire.IndexFactoryBean.afterPropertiesSet(IndexFactoryBean.java:98)
       at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642)
       at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579)
       ... 16 common frames omitted
Wrapped by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'event_indx': Invocation of init method failed; nested 
exception is org.apache.geode.cache.query.IndexInvalidException: Invalid 
indexed expression : ' eventId '
       at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583)
       at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
       at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
       at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
       at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
       at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
       at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
       at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:732)
       at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
       at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
       at 
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
       at 
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
       at 
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)
       at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
       at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)
       at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)

Thanks,
Dharam

This email is confidential and subject to important disclaimers and conditions 
including on offers for the purchase or sale of securities, accuracy and 
completeness of information,  viruses, confidentiality, legal privilege, and 
legal entity disclaimers, available at 
http://www.jpmorgan.com/pages/disclosures/email

Reply via email to