Gregory Green created GEODE-2469:
------------------------------------
Summary: Redis adapter Hash key support
Key: GEODE-2469
URL: https://issues.apache.org/jira/browse/GEODE-2469
Project: Geode
Issue Type: Bug
Components: redis
Reporter: Gregory Green
The Redis adapter does not appear to handle hash keys correctly.
The following Example: Redis CLI works.
localhost:11211> HSET companies name "John Smith"
Using a HSET <region>:id .. produces an error
Example:
localhost:11211> HSET companies:1000 name "John Smith"
[Server error]
[fine 2017/02/10 16:04:33.289 EST server1 <Function Execution Processor2>
tid=0x6a] Region names may only be alphanumeric and may contain hyphens or
underscores: companies: 1000
java.lang.IllegalArgumentException: Region names may only be alphanumeric and
may contain hyphens or underscores: companies: 1000
at
org.apache.geode.internal.cache.LocalRegion.validateRegionName(LocalRegion.java:7618)
at
org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3201)
at
org.apache.geode.internal.cache.GemFireCacheImpl.basicCreateRegion(GemFireCacheImpl.java:3181)
at
org.apache.geode.internal.cache.GemFireCacheImpl.createRegion(GemFireCacheImpl.java:3169)
at org.apache.geode.cache.RegionFactory.create(RegionFactory.java:762)
at
org.apache.geode.management.internal.cli.functions.RegionCreateFunction.createRegion(RegionCreateFunction.java:355)
at
org.apache.geode.management.internal.cli.functions.RegionCreateFunction.execute(RegionCreateFunction.java:90)
at
org.apache.geode.internal.cache.execute.AbstractExecution.executeFunctionLocally(AbstractExecution.java:333)
at
org.apache.geode.internal.cache.execute.AbstractExecution$2.run(AbstractExecution.java:303)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at
org.apache.geode.distributed.internal.DistributionManager.runUntilShutdown(DistributionManager.java:621)
at
org.apache.geode.distributed.internal.DistributionManager$9$1.run(DistributionManager.java:1067)
at java.lang.Thread.run(Thread.java:745)
//Example Spring Data Redis Object sample
@Data
@EqualsAndHashCode()
@RedisHash(value="companies")
@NoArgsConstructor
public class Company
{
private @Id String id;
....
//Repository
public interface CompanyRepository extends CrudRepository<Company, String>
{
....
}
//When saving using a repository
repository.save(this.myCompany);
[Same Server error]
java.lang.IllegalArgumentException: Region names may only be alphanumeric and
may contain hyphens or underscores:
companies:f05405c2-86f2-4aaf-bd0c-6fecd483bf28
at
org.apache.geode.internal.cache.LocalRegion.validateRegionName(LocalRegion.java:7618)
at
org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3201)
at
org.apache.geode.internal.cache.GemFireCacheImpl.basicCreateRegion(GemFireCacheImpl.java:3181)
at
org.apache.geode.internal.cache.GemFireCacheImpl.createRegion(GemFireCacheImpl.java:3169)
at org.apache.geode.cache.RegionFactory.create(RegionFactory.java:762)
at
org.apache.geode.management.internal.cli.functions.RegionCreateFunction.createRegion(RegionCreateFunction.java:355)
at
org.apache.geode.management.internal.cli.functions.RegionCreateFunction.execute(RegionCreateFunction.java:90)
at
org.apache.geode.internal.cache.execute.AbstractExecution.executeFunctionLocally(AbstractExecution.java:333)
at
org.apache.geode.internal.cache.execute.AbstractExecution$2.run(AbstractExecution.java:303)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at
org.apache.geode.distributed.internal.DistributionManager.runUntilShutdown(DistributionManager.java:621)
at
org.apache.geode.distributed.internal.DistributionManager$9$1.run(DistributionManager.java:1067)
at java.lang.Thread.run(Thread.java:745)
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)