Bug #13465
Problem: users can add blank language rows in the i18n settings, causing indexing errors
Status: | Verified | Start date: | 01/26/2021 | |
---|---|---|---|---|
Priority: | Medium | Due date: | ||
Assignee: | - | % Done: | 0% | |
Category: | I18N | |||
Target version: | Release 2.6.3 | |||
Google Code Legacy ID: | Tested version: | 2.6 | ||
Sponsored: | No | Requires documentation: |
Description
First reported in the User Forum, 2021-01-26: https://groups.google.com/g/ica-atom-users/c/A--wCn1eMAA/m/R2isOByIAAAJ
To Reproduce
- Log in and navigate to Admin > Settings > i18n languages
- Click into the Language code drop-down selection menu, but do not select a language
- Click the Add button
- Rebuild the search index
Resulting error
Indexing error. From the report in the user forum:
[2021-01-25T14:59:26,475][DEBUG][o.e.a.a.i.m.p.TransportPutMappingAction] [7p0NKF7] failed to put mappings on indices [[[atom/i_6nvJSuS3WqrMYBARXQFw]]], type [QubitAip] java.lang.IllegalArgumentException: name cannot be empty string at org.elasticsearch.index.mapper.ObjectMapper.<init>(ObjectMapper.java:326) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.ObjectMapper$Builder.createMapper(ObjectMapper.java:160) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.ObjectMapper$Builder.build(ObjectMapper.java:152) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.ObjectMapper$Builder.build(ObjectMapper.java:95) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.ObjectMapper$Builder.build(ObjectMapper.java:143) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.ObjectMapper$Builder.build(ObjectMapper.java:95) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.ObjectMapper$Builder.build(ObjectMapper.java:143) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.ObjectMapper$Builder.build(ObjectMapper.java:95) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.ObjectMapper$Builder.build(ObjectMapper.java:143) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.DocumentMapper$Builder.<init>(DocumentMapper.java:69) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:111) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:91) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:644) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:264) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.cluster.service.ClusterService.executeTasks(ClusterService.java:634) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.cluster.service.ClusterService.calculateTaskOutputs(ClusterService.java:612) ~[elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.cluster.service.ClusterService.runTasks(ClusterService.java:571) [elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.cluster.service.ClusterService$ClusterServiceTaskBatcher.run(ClusterService.java:263) [elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.cluster.service.TaskBatcher.runIfNotProcessed(TaskBatcher.java:150) [elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.cluster.service.TaskBatcher$BatchedTask.run(TaskBatcher.java:188) [elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:576) [elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:247) [elasticsearch-5.6.16.jar:5.6.16] at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:210) [elasticsearch-5.6.16.jar:5.6.16] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:834) [?:?]
Expected result
- The AtoM user interface does not allow the addition of blank/empty language rows in the i18n settings.
Related issues
History
#1 Updated by José Raddaoui Marín over 1 year ago
- Related to Bug #13181: Languages with 3-letter codes cannot be added in AtoM's user interface settings added
#2 Updated by José Raddaoui Marín over 1 year ago
- Status changed from New to Code Review
- Target version set to Release 2.6.3
Ready for code review: https://github.com/artefactual/atom/pull/1258
#3 Updated by Steve Breker about 1 year ago
- Status changed from Code Review to Feedback
- Assignee set to José Raddaoui Marín
CR complete - looks good!
#4 Updated by José Raddaoui Marín about 1 year ago
- Status changed from Feedback to QA/Review
- Assignee deleted (
José Raddaoui Marín)
Thanks Steve. Merged in qa/2.x.
#5 Updated by Sarah Mason about 1 year ago
- Status changed from QA/Review to Verified
Verified.
-Sarah M.