Thank you Json!

Below syntax seems to be working even with ValueConstraint, but not sure if 
that’s the right way to define!

Could you help me to verify that?
<geode:index id="event_indx" expression="i.eventId" from="/Event i" 
cache-ref="geodeCache"/>
Thanks & Regards,
Dharam

From: Jason Huynh [mailto:[email protected]]
Sent: Wednesday, January 04, 2017 11:53 PM
To: [email protected]; [email protected]
Subject: Re: Issue with creating indexes in PdxIntance

Hi Dharam,

I believe this is due to having a value-constraint set on the region.  We 
validate the field exists on the value-constraint type before creating the 
index.  PdxInstance is a "special" type and should probably be ignored or 
treated as if it were not contrained.  I have created a ticket for the 
https://issues.apache.org/jira/browse/GEODE-2266.  Hopefully you can remove the 
value-constraint and get past this issue for the time being.

-Jason

On Wed, Jan 4, 2017 at 5:54 AM Thacker, Dharam 
<[email protected]<mailto:[email protected]>> wrote:
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

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