From 4f3da72ed3478554243e3aef2c2d980884762aa0 Mon Sep 17 00:00:00 2001 From: Kris De Schutter Date: Wed, 30 Jan 2019 12:03:48 +0100 Subject: [PATCH 1/6] [Contradictory type checks](https://lgtm.com/projects/g/elastic/elasticsearch/snapshot/dist-1916470085-1548143539391/files/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/planner/QueryTranslator.java#xa88ea97f7b1036f1:1) --- .../elasticsearch/xpack/sql/planner/QueryTranslator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/planner/QueryTranslator.java b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/planner/QueryTranslator.java index 489e1506edf1a..49d0c2e6e1c26 100644 --- a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/planner/QueryTranslator.java +++ b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/planner/QueryTranslator.java @@ -404,12 +404,12 @@ static String nameOf(Expression e) { if (e instanceof DateTimeFunction) { return nameOf(((DateTimeFunction) e).field()); } - if (e instanceof NamedExpression) { - return ((NamedExpression) e).name(); - } if (e instanceof Literal) { return String.valueOf(e.fold()); } + if (e instanceof NamedExpression) { + return ((NamedExpression) e).name(); + } throw new SqlIllegalArgumentException("Cannot determine name for {}", e); } From 7b592752c06b3fd716db99edae61710b8463178c Mon Sep 17 00:00:00 2001 From: Kris De Schutter Date: Wed, 30 Jan 2019 12:07:07 +0100 Subject: [PATCH 2/6] [Contradictory type checks](https://lgtm.com/projects/g/elastic/elasticsearch/snapshot/dist-1916470085-1548143539391/files/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Analyzer.java#xee9dfb4802f27c7f:1) --- .../xpack/sql/analysis/analyzer/Analyzer.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Analyzer.java b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Analyzer.java index 097758976da84..3d02c98a1a704 100644 --- a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Analyzer.java +++ b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Analyzer.java @@ -887,18 +887,18 @@ private List assignAliases(List expr NamedExpression expr = exprs.get(i); NamedExpression transformed = (NamedExpression) expr.transformUp(ua -> { Expression child = ua.child(); - if (child instanceof NamedExpression) { - return child; - } - if (!child.resolved()) { - return ua; - } if (child instanceof Cast) { Cast c = (Cast) child; if (c.field() instanceof NamedExpression) { return new Alias(c.source(), ((NamedExpression) c.field()).name(), c); } } + if (child instanceof NamedExpression) { + return child; + } + if (!child.resolved()) { + return ua; + } return new Alias(child.source(), child.sourceText(), child); }, UnresolvedAlias.class); newExpr.add(expr.equals(transformed) ? expr : transformed); From 8579df1df59c1b8e90580e95d2d4428feb4ca763 Mon Sep 17 00:00:00 2001 From: Kris De Schutter Date: Wed, 30 Jan 2019 12:27:50 +0100 Subject: [PATCH 3/6] [Container contents are never accessed](https://lgtm.com/projects/g/elastic/elasticsearch/snapshot/dist-1916470085-1548143539391/files/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/querydsl/container/QueryContainer.java?sort=name&dir=ASC&mode=heatmap#x581195a77954fd21:1) --- .../xpack/sql/querydsl/container/QueryContainer.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/querydsl/container/QueryContainer.java b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/querydsl/container/QueryContainer.java index 9a784b7b112ff..09adce9fb9081 100644 --- a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/querydsl/container/QueryContainer.java +++ b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/querydsl/container/QueryContainer.java @@ -179,9 +179,6 @@ private FieldExtraction topHitFieldRef(FieldAttribute fieldAttr) { } private Tuple nestedHitFieldRef(FieldAttribute attr) { - // Find the nested query for this field. If there isn't one then create it - List nestedRefs = new ArrayList<>(); - String name = aliasName(attr); String format = attr.field().getDataType() == DataType.DATETIME ? "epoch_millis" : DocValueFieldsContext.USE_DEFAULT_FORMAT; Query q = rewriteToContainNestedField(query, attr.source(), @@ -189,7 +186,6 @@ private Tuple nestedHitFieldRef(FieldAttribute SearchHitFieldRef nestedFieldRef = new SearchHitFieldRef(name, attr.field().getDataType(), attr.field().isAggregatable(), attr.parent().name()); - nestedRefs.add(nestedFieldRef); return new Tuple<>(new QueryContainer(q, aggs, columns, aliases, pseudoFunctions, scalarFunctions, sort, limit), nestedFieldRef); } From 795695b9589dd84c7217fa2009ca041bb6367314 Mon Sep 17 00:00:00 2001 From: Kris De Schutter Date: Wed, 30 Jan 2019 12:38:35 +0100 Subject: [PATCH 4/6] * [Non-final method invocation in constructor](https://lgtm.com/projects/g/elastic/elasticsearch/snapshot/dist-1916470085-1548143539391/files/server/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java#x4e06dc48702dac54:1) * [Non-final method invocation in constructor](https://lgtm.com/projects/g/elastic/elasticsearch/snapshot/dist-1916470085-1548143539391/files/server/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java?sort=name&dir=ASC&mode=heatmap#xaeb362a26c0fdaf1:1) * [Non-final method invocation in constructor](https://lgtm.com/projects/g/elastic/elasticsearch/snapshot/dist-1916470085-1548143539391/files/server/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java?sort=name&dir=ASC&mode=heatmap#x5c00888239d02f3a:1) --- .../blobstore/BlobStoreRepository.java | 2 +- .../repositories/fs/FsRepository.java | 32 +++++++++++++++---- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java b/server/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java index c8cdf0d4e0308..a1002ac6b0b17 100644 --- a/server/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java +++ b/server/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java @@ -193,7 +193,7 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp private static final String DATA_BLOB_PREFIX = "__"; - private final Settings settings; + protected final Settings settings; private final RateLimiter snapshotRateLimiter; diff --git a/server/src/main/java/org/elasticsearch/repositories/fs/FsRepository.java b/server/src/main/java/org/elasticsearch/repositories/fs/FsRepository.java index 01c08fbce0044..cbff70fbc5b20 100644 --- a/server/src/main/java/org/elasticsearch/repositories/fs/FsRepository.java +++ b/server/src/main/java/org/elasticsearch/repositories/fs/FsRepository.java @@ -66,10 +66,12 @@ public class FsRepository extends BlobStoreRepository { Setting.boolSetting("repositories.fs.compress", false, Property.NodeScope); private final Environment environment; + private boolean chunkSizeInitialized = false; private ByteSizeValue chunkSize; private final BlobPath basePath; + private boolean compressInitialized = false; private boolean compress; /** @@ -100,13 +102,6 @@ public FsRepository(RepositoryMetaData metadata, Environment environment, } } - if (CHUNK_SIZE_SETTING.exists(metadata.settings())) { - this.chunkSize = CHUNK_SIZE_SETTING.get(metadata.settings()); - } else { - this.chunkSize = REPOSITORIES_CHUNK_SIZE_SETTING.get(environment.settings()); - } - this.compress = COMPRESS_SETTING.exists(metadata.settings()) - ? COMPRESS_SETTING.get(metadata.settings()) : REPOSITORIES_COMPRESS_SETTING.get(environment.settings()); this.basePath = BlobPath.cleanPath(); } @@ -117,13 +112,36 @@ protected BlobStore createBlobStore() throws Exception { return new FsBlobStore(environment.settings(), locationFile); } + /* + * Note: this method gets called by the super constructor, so we can't rely on instance fields in this class having been initialized + * yet. + */ @Override protected boolean isCompress() { + if (!compressInitialized) { + this.compress = COMPRESS_SETTING.exists(metadata.settings()) ? COMPRESS_SETTING.get(metadata.settings()) + : REPOSITORIES_COMPRESS_SETTING.get(settings); + compressInitialized = true; + } + return compress; } + /* + * Note: this method gets called by the super constructor, so we can't rely on instance fields in this class having been initialized + * yet. + */ @Override protected ByteSizeValue chunkSize() { + if (!chunkSizeInitialized) { + if (CHUNK_SIZE_SETTING.exists(metadata.settings())) { + this.chunkSize = CHUNK_SIZE_SETTING.get(metadata.settings()); + } else { + this.chunkSize = REPOSITORIES_CHUNK_SIZE_SETTING.get(settings); + } + chunkSizeInitialized = true; + } + return chunkSize; } From bcfccf2c081726aea4778aa0e83cee33af47af81 Mon Sep 17 00:00:00 2001 From: Kris De Schutter Date: Wed, 30 Jan 2019 15:07:21 +0100 Subject: [PATCH 5/6] [Container contents are never initialized](https://lgtm.com/projects/g/elastic/elasticsearch/snapshot/dist-1916470085-1548143539391/files/server/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java?sort=name&dir=ASC&mode=heatmap#xbfb707977d96248b:1) --- .../cluster/metadata/MetaDataCreateIndexService.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java b/server/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java index d9120342cf4cd..4c3455032c005 100644 --- a/server/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java +++ b/server/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java @@ -294,8 +294,6 @@ public ClusterState execute(ClusterState currentState) throws Exception { List templates = MetaDataIndexTemplateService.findTemplates(currentState.metaData(), request.index()); - Map> customs = new HashMap<>(); - // add the request mapping Map> mappings = new HashMap<>(); @@ -513,10 +511,6 @@ public ClusterState execute(ClusterState currentState) throws Exception { indexMetaDataBuilder.putAlias(aliasMetaData); } - for (Map.Entry> customEntry : customs.entrySet()) { - indexMetaDataBuilder.putCustom(customEntry.getKey(), customEntry.getValue()); - } - indexMetaDataBuilder.state(request.state()); final IndexMetaData indexMetaData; From c26dea93ca495311749ae7746d80bab6a2df7bdf Mon Sep 17 00:00:00 2001 From: Kris De Schutter Date: Wed, 30 Jan 2019 15:11:26 +0100 Subject: [PATCH 6/6] [Contradictory type checks](https://lgtm.com/projects/g/elastic/elasticsearch/snapshot/dist-1916470085-1548143539391/files/x-pack/plugin/sql/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/debug/Debug.java#xe223478b74721d35:1) --- .../main/java/org/elasticsearch/xpack/sql/jdbc/Debug.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/plugin/sql/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/Debug.java b/x-pack/plugin/sql/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/Debug.java index c63d6ce19934c..cb10395e3925c 100644 --- a/x-pack/plugin/sql/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/Debug.java +++ b/x-pack/plugin/sql/jdbc/src/main/java/org/elasticsearch/xpack/sql/jdbc/Debug.java @@ -91,12 +91,12 @@ static ResultSetMetaData proxy(ResultSetMetaDataProxy handler) { static Statement proxy(Object statement, StatementProxy handler) { Class i = Statement.class; - if (statement instanceof PreparedStatement) { - i = PreparedStatement.class; - } - else if (statement instanceof CallableStatement) { + if (statement instanceof CallableStatement) { i = CallableStatement.class; } + else if (statement instanceof PreparedStatement) { + i = PreparedStatement.class; + } return createProxy(i, handler); }