@@ -373,16 +373,14 @@ public void testEmptyType() throws Exception {
373373
374374    public  void  testWithRootObjectMapperNamespaceValidator () throws  Exception  {
375375        final  String  errorMessage  = "error 1234" ;
376+         final  String  disallowed  = "_project" ;
376377
377378        RootObjectMapperNamespaceValidator  validator  = new  RootObjectMapperNamespaceValidator () {
378379            @ Override 
379380            public  void  validateNamespace (ObjectMapper .Subobjects  subobjects , String  name ) {
380-                 System .err .println (">>> XXX subobjects: "  + subobjects .toString ());
381-                 String  disallowed  = "_project" ;
382381                if  (name .equals (disallowed )) {
383382                    throw  new  IllegalArgumentException (errorMessage );
384383                } else  if  (subobjects  != ObjectMapper .Subobjects .ENABLED ) {
385-                     System .err .println (">>> YYYYYYYYYYYYYYYYY subobjects: "  + subobjects .toString ());
386384                    // name here will be something like _project.my_field, rather than just _project 
387385                    if  (name .startsWith (disallowed  + "." )) {
388386                        throw  new  IllegalArgumentException (errorMessage );
@@ -404,7 +402,7 @@ public void validateNamespace(ObjectMapper.Subobjects subobjects, String name) {
404402
405403        // _project should fail, regardless of type 
406404        {
407-             String  json  = notNested .replace ("<FIELD_NAME>" , "_project" );
405+             String  json  = notNested .replace ("<FIELD_NAME>" , disallowed );
408406
409407            String  keyword  = json .replace ("<TYPE>" , "keyword" );
410408            Exception  e  = expectThrows (IllegalArgumentException .class , () -> createMapperServiceWithNamespaceValidator (keyword , validator ));
@@ -421,29 +419,30 @@ public void validateNamespace(ObjectMapper.Subobjects subobjects, String name) {
421419
422420        // _project.subfield should fail 
423421        {
424-             String  json  = notNested .replace ("<FIELD_NAME>" , "_project.subfield" ).replace ("<TYPE>" , randomFrom ("text" , "keyword" , "object" ));
422+             String  json  = notNested .replace ("<FIELD_NAME>" , disallowed  + ".subfield" )
423+                 .replace ("<TYPE>" , randomFrom ("text" , "keyword" , "object" ));
425424            Exception  e  = expectThrows (IllegalArgumentException .class , () -> createMapperServiceWithNamespaceValidator (json , validator ));
426425            assertThat (e .getMessage (), equalTo (errorMessage ));
427426        }
428427
429428        // _projectx should pass 
430429        {
431-             String  json  = notNested .replace ("<FIELD_NAME>" , "_projectx "replace ("<TYPE>" , randomFrom ("text" , "keyword" , "object" ));
430+             String  json  = notNested .replace ("<FIELD_NAME>" , disallowed  +  "x "replace ("<TYPE>" , randomFrom ("text" , "keyword" , "object" ));
432431            MapperService  mapperService  = createMapperServiceWithNamespaceValidator (json , validator );
433432            assertNotNull (mapperService );
434433        }
435434
436435        // _project_subfield should pass 
437436        {
438-             String  json  = notNested .replace ("<FIELD_NAME>" , "_project_subfield "
437+             String  json  = notNested .replace ("<FIELD_NAME>" , disallowed  +  "_subfield "
439438            json  = json .replace ("<TYPE>" , randomFrom ("text" , "keyword" , "object" ));
440439            MapperService  mapperService  = createMapperServiceWithNamespaceValidator (json , validator );
441440            assertNotNull (mapperService );
442441        }
443442
444443        // _projectx.subfield should pass 
445444        {
446-             String  json  = notNested .replace ("<FIELD_NAME>" , "_projectx .subfield"
445+             String  json  = notNested .replace ("<FIELD_NAME>" , disallowed  +  "x .subfield"
447446            json  = json .replace ("<TYPE>" , randomFrom ("text" , "keyword" , "object" ));
448447            MapperService  mapperService  = createMapperServiceWithNamespaceValidator (json , validator );
449448            assertNotNull (mapperService );
@@ -484,21 +483,21 @@ public void validateNamespace(ObjectMapper.Subobjects subobjects, String name) {
484483
485484        // nested _project { my_field } should fail 
486485        {
487-             String  json  = nested .replace ("<FIELD_NAME1>" , "_project" ).replace ("<FIELD_NAME2>" , "my_field" );
486+             String  json  = nested .replace ("<FIELD_NAME1>" , disallowed ).replace ("<FIELD_NAME2>" , "my_field" );
488487            Exception  e  = expectThrows (IllegalArgumentException .class , () -> createMapperServiceWithNamespaceValidator (json , validator ));
489488            assertThat (e .getMessage (), equalTo (errorMessage ));
490489        }
491490
492491        // nested my_field { _project } should succeed 
493492        {
494-             String  json  = nested .replace ("<FIELD_NAME1>" , "my_field" ).replace ("<FIELD_NAME2>" , "_project" );
493+             String  json  = nested .replace ("<FIELD_NAME1>" , "my_field" ).replace ("<FIELD_NAME2>" , disallowed );
495494            MapperService  mapperService  = createMapperServiceWithNamespaceValidator (json , validator );
496495            assertNotNull (mapperService );
497496        }
498497
499498        // nested _projectx { _project } should succeed 
500499        {
501-             String  json  = nested .replace ("<FIELD_NAME1>" , "_projectx "replace ("<FIELD_NAME2>" , "_project" );
500+             String  json  = nested .replace ("<FIELD_NAME1>" , disallowed  +  "x "replace ("<FIELD_NAME2>" , disallowed );
502501            MapperService  mapperService  = createMapperServiceWithNamespaceValidator (json , validator );
503502            assertNotNull (mapperService );
504503        }
@@ -558,16 +557,14 @@ public void validateNamespace(ObjectMapper.Subobjects subobjects, String name) {
558557
559558    public  void  testRuntimeFieldInMappingWithNamespaceValidator () throws  IOException  {
560559        final  String  errorMessage  = "error 1234" ;
560+         final  String  disallowed  = "_project" ;
561561
562562        RootObjectMapperNamespaceValidator  validator  = new  RootObjectMapperNamespaceValidator () {
563563            @ Override 
564564            public  void  validateNamespace (ObjectMapper .Subobjects  subobjects , String  name ) {
565-                 System .err .println (">>> XXX subobjects: "  + subobjects );
566-                 String  disallowed  = "_project" ;
567565                if  (name .equals (disallowed )) {
568566                    throw  new  IllegalArgumentException (errorMessage );
569567                } else  if  (subobjects  != ObjectMapper .Subobjects .ENABLED ) {
570-                     System .err .println (">>> YYYYYYYYYYYYYYYYY subobjects: "  + subobjects );
571568                    // name here will be something like _project.my_field, rather than just _project 
572569                    if  (name .startsWith (disallowed  + "." )) {
573570                        throw  new  IllegalArgumentException (errorMessage );
@@ -579,9 +576,9 @@ public void validateNamespace(ObjectMapper.Subobjects subobjects, String name) {
579576        // ensure that things close to the disallowed fields that are allowed 
580577        {
581578            String  mapping  = Strings .toString (runtimeMapping (builder  -> {
582-                 builder .startObject ("_project_x "field ("type" , "ip" ).endObject ();
583-                 builder .startObject ("_projectx "field ("type" , "date" ).endObject ();
584-                 builder .startObject ("field1._project"  ).field ("type" , "double" ).endObject ();
579+                 builder .startObject (disallowed  +  "_x "field ("type" , "ip" ).endObject ();
580+                 builder .startObject (disallowed  +  "x "field ("type" , "date" ).endObject ();
581+                 builder .startObject ("field1."   +  disallowed ).field ("type" , "double" ).endObject ();
585582            }));
586583            MapperService  mapperService  = createMapperServiceWithNamespaceValidator (mapping , validator );
587584            assertEquals (mapping , mapperService .documentMapper ().mappingSource ().toString ());
@@ -592,7 +589,7 @@ public void validateNamespace(ObjectMapper.Subobjects subobjects, String name) {
592589        {
593590            String  mapping  = Strings .toString (runtimeMapping (builder  -> {
594591                builder .startObject ("field1" ).field ("type" , "double" ).endObject ();
595-                 builder .startObject ("_project" ).field ("type" , "date" ).endObject ();
592+                 builder .startObject (disallowed ).field ("type" , "date" ).endObject ();
596593                builder .startObject ("field3" ).field ("type" , "ip" ).endObject ();
597594            }));
598595            Exception  e  = expectThrows (MapperParsingException .class , () -> createMapperServiceWithNamespaceValidator (mapping , validator ));
@@ -605,7 +602,7 @@ public void validateNamespace(ObjectMapper.Subobjects subobjects, String name) {
605602        {
606603            String  mapping  = Strings .toString (runtimeMapping (builder  -> {
607604                builder .startObject ("field1" ).field ("type" , "double" ).endObject ();
608-                 builder .startObject ("_project .my_sub_field"field ("type" , "keyword" ).endObject ();
605+                 builder .startObject (disallowed  +  " .my_sub_field"field ("type" , "keyword" ).endObject ();
609606                builder .startObject ("field3" ).field ("type" , "ip" ).endObject ();
610607            }));
611608            Exception  e  = expectThrows (MapperParsingException .class , () -> createMapperServiceWithNamespaceValidator (mapping , validator ));
0 commit comments