Bug #13465

Problem: users can add blank language rows in the i18n settings, causing indexing errors

Added by Dan Gillean 8 months ago. Updated 7 months ago.

Status:VerifiedStart date:01/26/2021
Priority:MediumDue 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

Related to Access to Memory (AtoM) - Bug #13181: Languages with 3-letter codes cannot be added in AtoM's u... In progress 09/24/2019

History

#1 Updated by José Raddaoui Marín 7 months 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 7 months ago

  • Status changed from New to Code Review
  • Target version set to Release 2.6.3

#3 Updated by Steve Breker 7 months 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 7 months 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 7 months ago

  • Status changed from QA/Review to Verified

Verified.

-Sarah M.

Also available in: Atom PDF