Skip to content

Commit f8b1d1e

Browse files
committed
add explicit type missing exception when trying to search on a type that is not registered
1 parent a8be99b commit f8b1d1e

File tree

3 files changed

+16
-37
lines changed

3 files changed

+16
-37
lines changed

modules/elasticsearch/src/main/java/org/elasticsearch/action/get/TransportGetAction.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,16 @@
3232
import org.elasticsearch.common.lucene.Lucene;
3333
import org.elasticsearch.common.lucene.uid.UidField;
3434
import org.elasticsearch.common.settings.Settings;
35+
import org.elasticsearch.index.Index;
3536
import org.elasticsearch.index.engine.Engine;
36-
import org.elasticsearch.index.mapper.*;
37+
import org.elasticsearch.index.mapper.DocumentMapper;
38+
import org.elasticsearch.index.mapper.FieldMapper;
39+
import org.elasticsearch.index.mapper.FieldMappers;
40+
import org.elasticsearch.index.mapper.FieldMappersFieldSelector;
3741
import org.elasticsearch.index.service.IndexService;
3842
import org.elasticsearch.index.shard.service.IndexShard;
3943
import org.elasticsearch.indices.IndicesService;
44+
import org.elasticsearch.indices.TypeMissingException;
4045
import org.elasticsearch.threadpool.ThreadPool;
4146
import org.elasticsearch.transport.TransportService;
4247

@@ -79,7 +84,7 @@ public class TransportGetAction extends TransportShardSingleOperationAction<GetR
7984

8085
DocumentMapper docMapper = indexService.mapperService().documentMapper(request.type());
8186
if (docMapper == null) {
82-
throw new DocumentMapperNotFoundException("No mapper found for type [" + request.type() + "]");
87+
throw new TypeMissingException(new Index(request.index()), request.type());
8388
}
8489

8590
if (request.refresh()) {

modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/DocumentMapperNotFoundException.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/MapperService.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapperParser;
4242
import org.elasticsearch.index.settings.IndexSettings;
4343
import org.elasticsearch.indices.InvalidTypeNameException;
44+
import org.elasticsearch.indices.TypeMissingException;
4445

4546
import javax.annotation.Nullable;
4647
import java.io.File;
@@ -237,10 +238,17 @@ public DocumentMapper documentMapperWithAutoCreate(String type) {
237238
*/
238239
public Filter typesFilter(String... types) {
239240
if (types.length == 1) {
240-
return documentMapper(types[0]).typeFilter();
241+
DocumentMapper docMapper = documentMapper(types[0]);
242+
if (docMapper == null) {
243+
throw new TypeMissingException(index, types[0]);
244+
}
245+
return docMapper.typeFilter();
241246
}
242247
PublicTermsFilter termsFilter = new PublicTermsFilter();
243248
for (String type : types) {
249+
if (!hasMapping(type)) {
250+
throw new TypeMissingException(index, type);
251+
}
244252
termsFilter.addTerm(new Term(TypeFieldMapper.NAME, type));
245253
}
246254
return termsFilter;

0 commit comments

Comments
 (0)