[
https://issues.apache.org/jira/browse/GEODE-2764?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15965117#comment-15965117
]
ASF GitHub Bot commented on GEODE-2764:
---------------------------------------
Github user jhuynh1 commented on a diff in the pull request:
https://github.com/apache/geode/pull/449#discussion_r111036455
--- Diff:
geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateIndexFunction.java
---
@@ -93,6 +91,31 @@ public void execute(FunctionContext context) {
}
}
+ private void setResultInSender(FunctionContext context, IndexInfo
indexInfo, String memberId,
+ Cache cache, String regionPath) {
+ if (regionPath == null) {
+ String message =
CliStrings.format(CliStrings.CREATE_INDEX__INVALID__REGIONPATH,
+ indexInfo.getRegionPath());
+ context.getResultSender().lastResult(new CliFunctionResult(memberId,
false, message));
+ } else {
+ XmlEntity xmlEntity =
+ new XmlEntity(CacheXml.REGION, "name",
cache.getRegion(regionPath).getName());
+ context.getResultSender().lastResult(new CliFunctionResult(memberId,
xmlEntity));
+ }
+ }
+
+ private String getValidRegionName(Cache cache, String regionPath) {
+ while (cache.getRegion(regionPath) == null && regionPath != null) {
--- End diff --
If regionPath is null, will cache.getRegion(regionPath) throw an exception?
Shouldn't the regionPath check for null be first?
> Index entry not entered into cluster config xml if region name contains a
> function call like entrySet()
> -------------------------------------------------------------------------------------------------------
>
> Key: GEODE-2764
> URL: https://issues.apache.org/jira/browse/GEODE-2764
> Project: Geode
> Issue Type: Bug
> Reporter: nabarun
>
> Steps to recreate the issue type the following in a gfsh instance:
> 1. start locator --name=locator
> 2. start server --name=server
> 3. create region --name=regionName --type=REPLICATE_PERSISTENT
> 4. create index --name=regionIndex --region="regionName.entrySet() r"
> --expression=r.key
> -- this will result in an error message
> {noformat}
> Failed to create index "regionIndex" due to following reasons
> null
> {noformat}
> Cause:
> The index is created but while putting the entry into the clusterconfig it
> tries to put the region name as regionName.entrySet() which does not exist.
> cache.getRegion(regionName.entrySet()) will result in null and no xml entry
> is added to the clusterconfig. So when the server is restarted, there is no
> index entry in the cluster config xml hence the index is not re-created.
> Solution:
> If the region name contains the character '(' and ')' spilt the region name
> at the index of '.' and check if the region exists.
> If the check returns successful only then enter the entry into the cluster
> config.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)