You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by "Serge Huber (Jira)" <ji...@apache.org> on 2022/10/21 13:36:00 UTC
[jira] [Closed] (UNOMI-145) EventPropertyCondition Segment Cannot Save Rule
[ https://issues.apache.org/jira/browse/UNOMI-145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Serge Huber closed UNOMI-145.
-----------------------------
Resolution: Fixed
JSON schemas should solve this.
> EventPropertyCondition Segment Cannot Save Rule
> -----------------------------------------------
>
> Key: UNOMI-145
> URL: https://issues.apache.org/jira/browse/UNOMI-145
> Project: Apache Unomi
> Issue Type: Bug
> Affects Versions: unomi-1.2.0-incubating
> Reporter: Don Hinshaw
> Priority: Major
> Fix For: unomi-2.1.0
>
>
> When creating the following segment, the initial step of putting all existing profiles into the segment works just fine. But the rule that is used to put future profiles into the segment cannot be saved due to a NumberFomatException.
> Work around: I was able to use "propertyValues": ["test_value"] and use the "all" operator to get around this error for the time being.
> {code:java}
> {
> "itemId": "test_segment",
> "itemType": "segment",
> "condition": {
> "parameterValues": {
> "eventCondition": {
> "parameterValues": {
> "propertyName": "target.properties.test",
> "comparisonOperator": "equals",
> "propertyValue": "test_value"
> },
> "type": "eventPropertyCondition"
> }
> },
> "type": "pastEventCondition"
> },
> "metadata": {
> "id": "test_segment",
> "name": "Test Segment",
> "description": "This is a Test Segment",
> "scope": "systemscope",
> "tags": [
> "Test"
> ],
> "enabled": true,
> "missingPlugins": false,
> "hidden": false,
> "readOnly": false
> }
> }
> {code}
> {noformat}
> 2017-12-19 14:36:21,517 | ERROR | - /cxs/segments | sticSearchPersistenceServiceImpl | 205 - org.apache.unomi.persistence-elasticsearch-core - 1.2.0.incubating | Error while executing in class loader
> MapperParsingException[failed to parse [condition.parameterValues.propertyValue]]; nested: NumberFormatException[For input string: "test_value"];
> at org.elasticsearch.index.mapper.FieldMapper.parse(FieldMapper.java:298)
> at org.elasticsearch.index.mapper.DocumentParser.parseObjectOrField(DocumentParser.java:450)
> at org.elasticsearch.index.mapper.DocumentParser.parseValue(DocumentParser.java:576)
> at org.elasticsearch.index.mapper.DocumentParser.innerParseObject(DocumentParser.java:396)
> at org.elasticsearch.index.mapper.DocumentParser.parseObjectOrNested(DocumentParser.java:373)
> at org.elasticsearch.index.mapper.DocumentParser.parseObjectOrField(DocumentParser.java:447)
> at org.elasticsearch.index.mapper.DocumentParser.parseObject(DocumentParser.java:467)
> at org.elasticsearch.index.mapper.DocumentParser.innerParseObject(DocumentParser.java:383)
> at org.elasticsearch.index.mapper.DocumentParser.parseObjectOrNested(DocumentParser.java:373)
> at org.elasticsearch.index.mapper.DocumentParser.parseObjectOrField(DocumentParser.java:447)
> at org.elasticsearch.index.mapper.DocumentParser.parseObject(DocumentParser.java:467)
> at org.elasticsearch.index.mapper.DocumentParser.innerParseObject(DocumentParser.java:383)
> at org.elasticsearch.index.mapper.DocumentParser.parseObjectOrNested(DocumentParser.java:373)
> at org.elasticsearch.index.mapper.DocumentParser.internalParseDocument(DocumentParser.java:93)
> at org.elasticsearch.index.mapper.DocumentParser.parseDocument(DocumentParser.java:66)
> at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:277)
> at org.elasticsearch.index.shard.IndexShard.prepareIndex(IndexShard.java:536)
> at org.elasticsearch.index.shard.IndexShard.prepareIndexOnPrimary(IndexShard.java:513)
> at org.elasticsearch.action.bulk.TransportShardBulkAction.prepareIndexOperationOnPrimary(TransportShardBulkAction.java:450)
> at org.elasticsearch.action.bulk.TransportShardBulkAction.executeIndexRequestOnPrimary(TransportShardBulkAction.java:458)
> at org.elasticsearch.action.bulk.TransportShardBulkAction.executeBulkItemRequest(TransportShardBulkAction.java:143)
> at org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:113)
> at org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:69)
> at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryShardReference.perform(TransportReplicationAction.java:939)
> at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryShardReference.perform(TransportReplicationAction.java:908)
> at org.elasticsearch.action.support.replication.ReplicationOperation.execute(ReplicationOperation.java:113)
> at org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.onResponse(TransportReplicationAction.java:322)
> at org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.onResponse(TransportReplicationAction.java:264)
> at org.elasticsearch.action.support.replication.TransportReplicationAction$1.onResponse(TransportReplicationAction.java:888)
> at org.elasticsearch.action.support.replication.TransportReplicationAction$1.onResponse(TransportReplicationAction.java:885)
> at org.elasticsearch.index.shard.IndexShardOperationsLock.acquire(IndexShardOperationsLock.java:147)
> at org.elasticsearch.index.shard.IndexShard.acquirePrimaryOperationLock(IndexShard.java:1658)
> at org.elasticsearch.action.support.replication.TransportReplicationAction.acquirePrimaryShardReference(TransportReplicationAction.java:897)
> at org.elasticsearch.action.support.replication.TransportReplicationAction.access$400(TransportReplicationAction.java:93)
> at org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.doRun(TransportReplicationAction.java:281)
> at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
> at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:260)
> at org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:252)
> at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69)
> at org.elasticsearch.transport.TransportService$7.doRun(TransportService.java:627)
> at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:638)
> at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_131]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_131]
> at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
> Caused by: java.lang.NumberFormatException: For input string: "test_value"
> at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)[:1.8.0_131]
> at java.lang.Long.parseLong(Long.java:589)[:1.8.0_131]
> at java.lang.Long.parseLong(Long.java:631)[:1.8.0_131]
> at org.elasticsearch.common.xcontent.support.AbstractXContentParser.longValue(AbstractXContentParser.java:172)
> at org.elasticsearch.index.mapper.NumberFieldMapper$NumberType$7.parse(NumberFieldMapper.java:740)
> at org.elasticsearch.index.mapper.NumberFieldMapper$NumberType$7.parse(NumberFieldMapper.java:719)
> at org.elasticsearch.index.mapper.NumberFieldMapper.parseCreateField(NumberFieldMapper.java:1058)
> at org.elasticsearch.index.mapper.FieldMapper.parse(FieldMapper.java:287)
> ... 44 more
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)