You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hy...@apache.org on 2014/04/14 12:38:36 UTC
git commit: TAJO-759: Fix findbug errors added recently.
Repository: tajo
Updated Branches:
refs/heads/master 898268409 -> 06a14960e
TAJO-759: Fix findbug errors added recently.
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/06a14960
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/06a14960
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/06a14960
Branch: refs/heads/master
Commit: 06a14960ee74d1bdd4dddf78955928b61563ff6f
Parents: 8982684
Author: Hyunsik Choi <hy...@apache.org>
Authored: Mon Apr 14 17:58:35 2014 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Mon Apr 14 19:32:17 2014 +0900
----------------------------------------------------------------------
CHANGES.txt | 2 ++
.../org/apache/tajo/catalog/AlterTableDesc.java | 19 ++++++++---
.../java/org/apache/tajo/catalog/Column.java | 5 ---
.../java/org/apache/tajo/catalog/IndexDesc.java | 2 +-
.../java/org/apache/tajo/catalog/SortSpec.java | 2 +-
.../exception/NoSuchColumnException.java | 34 ++++++++++++++++++++
.../tajo/catalog/statistics/ColumnStats.java | 2 +-
.../tajo/catalog/statistics/TableStats.java | 24 ++++++++++----
.../tajo/catalog/store/AbstractDBStore.java | 16 ++++++---
.../org/apache/tajo/catalog/store/MemStore.java | 2 +-
.../java/org/apache/tajo/client/TajoDump.java | 2 +-
.../java/org/apache/tajo/common/type/IPv4.java | 6 ++--
.../java/org/apache/tajo/datum/CharDatum.java | 4 +--
.../java/org/apache/tajo/datum/DateDatum.java | 7 ++--
.../org/apache/tajo/datum/DatumFactory.java | 4 +--
.../java/org/apache/tajo/datum/Inet4Datum.java | 8 ++---
.../java/org/apache/tajo/datum/TextDatum.java | 4 +--
.../java/org/apache/tajo/datum/TimeDatum.java | 7 ++--
.../org/apache/tajo/datum/TimestampDatum.java | 7 ++--
.../org/apache/tajo/engine/eval/FieldEval.java | 2 +-
.../org/apache/tajo/engine/planner/Target.java | 2 +-
.../engine/planner/logical/GroupbyNode.java | 2 +-
.../apache/tajo/jdbc/TajoPreparedStatement.java | 4 +--
tajo-project/pom.xml | 2 +-
.../org/apache/tajo/rpc/ServerCallable.java | 1 -
.../org/apache/tajo/storage/MemoryUtil.java | 2 ++
.../org/apache/tajo/storage/TupleRange.java | 2 +-
.../apache/tajo/storage/index/bst/BSTIndex.java | 9 +++---
.../tajo/storage/trevni/TrevniAppender.java | 1 +
29 files changed, 118 insertions(+), 66 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 8d7127f..47af4ec 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -923,6 +923,8 @@ Release 0.2.0 - released
BUG FIXES
+ TAJO-759: Fix findbug errors added recently. (hyunsik)
+
TAJO-754: failure of INSERT INTO may remove the target table.
(hyunsik)
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/AlterTableDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/AlterTableDesc.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/AlterTableDesc.java
index d69330d..fcaa4c3 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/AlterTableDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/AlterTableDesc.java
@@ -20,8 +20,6 @@ package org.apache.tajo.catalog;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.apache.tajo.catalog.json.CatalogGsonHelper;
import org.apache.tajo.catalog.proto.CatalogProtos;
import org.apache.tajo.common.ProtoObject;
@@ -29,11 +27,12 @@ import org.apache.tajo.json.GsonObject;
public class AlterTableDesc implements ProtoObject<CatalogProtos.AlterTableDescProto>, GsonObject, Cloneable {
- private final Log LOG = LogFactory.getLog(AlterTableDesc.class);
protected CatalogProtos.AlterTableDescProto.Builder builder = null;
@Expose
+ protected AlterTableType alterTableType; //required
+ @Expose
protected String tableName; // required
@Expose
protected String newTableName; // optional
@@ -43,8 +42,6 @@ public class AlterTableDesc implements ProtoObject<CatalogProtos.AlterTableDescP
protected String newColumnName; //optional
@Expose
protected Column addColumn = null; //optiona
- @Expose
- protected AlterTableType alterTableType; //required
public AlterTableDesc() {
builder = CatalogProtos.AlterTableDescProto.newBuilder();
@@ -107,6 +104,18 @@ public class AlterTableDesc implements ProtoObject<CatalogProtos.AlterTableDescP
}
@Override
+ public AlterTableDesc clone() throws CloneNotSupportedException {
+ AlterTableDesc newAlter = (AlterTableDesc) super.clone();
+ newAlter.builder = CatalogProtos.AlterTableDescProto.newBuilder();
+ newAlter.alterTableType = alterTableType;
+ newAlter.tableName = tableName;
+ newAlter.newTableName = newTableName;
+ newAlter.columnName = newColumnName;
+ newAlter.addColumn = addColumn;
+ return newAlter;
+ }
+
+ @Override
public String toJson() {
return CatalogGsonHelper.toJson(this, AlterTableDesc.class);
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Column.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Column.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Column.java
index aab20c7..aceb6f1 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Column.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Column.java
@@ -121,11 +121,6 @@ public class Column implements ProtoObject<ColumnProto>, GsonObject {
return Objects.hashCode(name, dataType);
}
-
- @Override
- public Object clone() {
- return this;
- }
/**
*
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java
index d77408a..cff2059 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java
@@ -140,7 +140,7 @@ public class IndexDesc implements ProtoObject<IndexDescProto>, Cloneable {
IndexDesc desc = (IndexDesc) super.clone();
desc.indexName = indexName;
desc.tableName = tableName;
- desc.column = (Column) column.clone();
+ desc.column = column;
desc.indexMethod = indexMethod;
desc.isUnique = isUnique;
desc.isClustered = isClustered;
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SortSpec.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SortSpec.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SortSpec.java
index a2c76ba..5b10dfd 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SortSpec.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SortSpec.java
@@ -78,7 +78,7 @@ public class SortSpec implements Cloneable, GsonObject, ProtoObject<SortSpecProt
@Override
public Object clone() throws CloneNotSupportedException {
SortSpec key = (SortSpec) super.clone();
- key.sortKey = (Column) sortKey.clone();
+ key.sortKey = sortKey;
key.ascending = ascending;
key.nullFirst = nullFirst;
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchColumnException.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchColumnException.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchColumnException.java
new file mode 100644
index 0000000..4af3f70
--- /dev/null
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchColumnException.java
@@ -0,0 +1,34 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tajo.catalog.exception;
+
+
+public class NoSuchColumnException extends CatalogException {
+ private static final long serialVersionUID = 277182608283894937L;
+
+ public NoSuchColumnException() {}
+
+ public NoSuchColumnException(String databaseName, String relName, String columnName) {
+ super(String.format("ERROR: column \" %s.%s \" in %s does not exist", relName, columnName, databaseName));
+ }
+
+ public NoSuchColumnException(String columnName) {
+ super("ERROR: column \"" + columnName + "\" does not exist");
+ }
+}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/statistics/ColumnStats.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/statistics/ColumnStats.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/statistics/ColumnStats.java
index f9f6aab..4d65d9a 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/statistics/ColumnStats.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/statistics/ColumnStats.java
@@ -129,7 +129,7 @@ public class ColumnStats implements ProtoObject<CatalogProtos.ColumnStatsProto>,
public Object clone() throws CloneNotSupportedException {
ColumnStats stat = (ColumnStats) super.clone();
stat.builder = CatalogProtos.ColumnStatsProto.newBuilder();
- stat.column = (Column) this.column.clone();
+ stat.column = this.column;
stat.numDistVals = numDistVals;
stat.numNulls = numNulls;
stat.minValue = minValue;
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/statistics/TableStats.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/statistics/TableStats.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/statistics/TableStats.java
index de2922e..dda8cd3 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/statistics/TableStats.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/statistics/TableStats.java
@@ -192,12 +192,24 @@ public class TableStats implements ProtoObject<TableStatsProto>, Cloneable, Gson
return;
}
- numRows = stat.numRows != null ? stat.numRows + numRows : numRows;
- numBytes = stat.numBytes != null ? stat.numBytes + numBytes : numBytes;
- numBlocks = stat.numBlocks != null ? stat.numBlocks + numBlocks : numBlocks;
- numShuffleOutputs = stat.numShuffleOutputs != null ? stat.numShuffleOutputs + numShuffleOutputs : numShuffleOutputs;
- avgRows = stat.avgRows != null ? stat.avgRows + avgRows : avgRows;
- readBytes = stat.readBytes != null ? stat.readBytes + readBytes : readBytes;
+ if (stat.numRows != null) {
+ numRows += stat.numRows;
+ }
+ if (stat.numBytes != null) {
+ numBytes += stat.numBytes;
+ }
+ if (stat.numBlocks != null) {
+ numBlocks += stat.numBlocks;
+ }
+ if (stat.numShuffleOutputs != null) {
+ numShuffleOutputs += stat.numShuffleOutputs;
+ }
+ if (stat.avgRows != null) {
+ avgRows += stat.avgRows;
+ }
+ if (stat.readBytes != null) {
+ readBytes += stat.readBytes;
+ }
}
public void setValues(TableStats stat) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
index 5b26e14..234af19 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
@@ -841,11 +841,17 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
}
}
- private void renameColumn(final int tableId, final CatalogProtos.AlterColumnProto alterColumnProto) throws CatalogException {
+ private void renameColumn(final int tableId, final CatalogProtos.AlterColumnProto alterColumnProto)
+ throws CatalogException {
- final String selectColumnSql = "SELECT COLUMN_NAME, DATA_TYPE, TYPE_LENGTH, ORDINAL_POSITION from " + TB_COLUMNS +" WHERE " + COL_TABLES_PK + " = ?" + " AND COLUMN_NAME = ?" ;
- final String deleteColumnNameSql = "DELETE FROM " + TB_COLUMNS + " WHERE TID = ? AND COLUMN_NAME = ?";
- final String insertNewColumnSql = "INSERT INTO " + TB_COLUMNS + " (TID, COLUMN_NAME, ORDINAL_POSITION, DATA_TYPE, TYPE_LENGTH) VALUES(?, ?, ?, ?, ?) ";
+ final String selectColumnSql =
+ "SELECT COLUMN_NAME, DATA_TYPE, TYPE_LENGTH, ORDINAL_POSITION from " + TB_COLUMNS +
+ " WHERE " + COL_TABLES_PK + " = ?" + " AND COLUMN_NAME = ?" ;
+ final String deleteColumnNameSql =
+ "DELETE FROM " + TB_COLUMNS + " WHERE TID = ? AND COLUMN_NAME = ?";
+ final String insertNewColumnSql =
+ "INSERT INTO " + TB_COLUMNS +
+ " (TID, COLUMN_NAME, ORDINAL_POSITION, DATA_TYPE, TYPE_LENGTH) VALUES(?, ?, ?, ?, ?) ";
if (LOG.isDebugEnabled()) {
LOG.debug(selectColumnSql);
@@ -876,6 +882,8 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
//NOTE ==> Setting new column Name
columnProto = columnProto.toBuilder().setName(alterColumnProto.getNewColumnName()).build();
ordinalPostion = resultSet.getInt("ORDINAL_POSITION");
+ } else {
+ throw new NoSuchColumnException(alterColumnProto.getOldColumnName());
}
resultSet.close();
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
index 8940093..ca99160 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
@@ -431,7 +431,7 @@ public class MemStore implements CatalogStore {
List<IndexDescProto> protos = new ArrayList<IndexDescProto>();
Map<String, IndexDescProto> indexByColumn = checkAndGetDatabaseNS(indexesByColumn, databaseName);
for (IndexDescProto proto : indexByColumn.values()) {
- if (proto.equals(tableName)) {
+ if (proto.getTableIdentifier().getTableName().equals(tableName)) {
protos.add(proto);
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java
----------------------------------------------------------------------
diff --git a/tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java b/tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java
index 924a65d..63dd35a 100644
--- a/tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java
+++ b/tajo-client/src/main/java/org/apache/tajo/client/TajoDump.java
@@ -104,7 +104,7 @@ public class TajoDump {
} else if (hostName != null && port != null) {
conf.setVar(TajoConf.ConfVars.TAJO_MASTER_CLIENT_RPC_ADDRESS, hostName+":"+port);
client = new TajoClient(conf);
- } else if (hostName == null && port == null) {
+ } else {
client = new TajoClient(conf);
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-common/src/main/java/org/apache/tajo/common/type/IPv4.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/common/type/IPv4.java b/tajo-common/src/main/java/org/apache/tajo/common/type/IPv4.java
index 957cd89..ba1575f 100644
--- a/tajo-common/src/main/java/org/apache/tajo/common/type/IPv4.java
+++ b/tajo-common/src/main/java/org/apache/tajo/common/type/IPv4.java
@@ -62,11 +62,11 @@ public class IPv4 implements Writable, Comparable<IPv4> {
token = tokenizer.nextToken(".");
if (token == null) {
throw new InvalidAddressException();
- } else if (Integer.valueOf(token) < 0 || Integer.valueOf(token) > 255) {
+ } else if (Integer.parseInt(token) < 0 || Integer.parseInt(token) > 255) {
throw new InvalidAddressException();
}
// ipBytes[i] = Short.valueOf(token).byteValue();
- this.ipBytes[i] = (byte)(((Integer.valueOf(token) << 24) >> 24) & 0xFF);
+ this.ipBytes[i] = (byte)(((Integer.parseInt(token) << 24) >> 24) & 0xFF);
}
}
@@ -91,7 +91,7 @@ public class IPv4 implements Writable, Comparable<IPv4> {
int maskIndex;
if ((maskIndex=addr.indexOf('/')) != -1) {
IPv4 other = new IPv4(addr.substring(0, maskIndex));
- int maskLen = Integer.valueOf(addr.substring(maskIndex+1));
+ int maskLen = Integer.parseInt(addr.substring(maskIndex+1));
IPv4 subnetMask = IPv4.getSubnetMask(maskLen);
if (this.and(subnetMask).equals(other.and(subnetMask))) {
return true;
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-common/src/main/java/org/apache/tajo/datum/CharDatum.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/CharDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/CharDatum.java
index ba66320..e31f59e 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/CharDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/CharDatum.java
@@ -71,12 +71,12 @@ public class CharDatum extends Datum {
@Override
public int asInt4() {
- return Integer.valueOf(getString());
+ return Integer.parseInt(getString());
}
@Override
public long asInt8() {
- return Long.valueOf(getString());
+ return Long.parseLong(getString());
}
@Override
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java
index e489a09..c327931 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java
@@ -157,7 +157,7 @@ public class DateDatum extends Datum {
public Datum equalsTo(Datum datum) {
if (datum.type() == TajoDataTypes.Type.TIME) {
return DatumFactory.createBool(date.equals(((DateDatum) datum).date));
- } else if (datum instanceof NullDatum || datum.isNull()) {
+ } else if (datum.isNull()) {
return datum;
} else {
throw new InvalidOperationException();
@@ -176,14 +176,11 @@ public class DateDatum extends Datum {
}
public boolean equals(Object obj) {
- if (obj instanceof NullDatum) {
- return false;
- }
if (obj instanceof DateDatum) {
DateDatum another = (DateDatum) obj;
return date.isEqual(another.date);
} else {
- throw new InvalidOperationException();
+ return false;
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java b/tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java
index c4f2b6c..2ddea9e 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java
@@ -219,7 +219,7 @@ public class DatumFactory {
}
public static Int4Datum createInt4(String val) {
- return new Int4Datum(Integer.valueOf(val));
+ return new Int4Datum(Integer.parseInt(val));
}
public static Int8Datum createInt8(long val) {
@@ -227,7 +227,7 @@ public class DatumFactory {
}
public static Int8Datum createInt8(String val) {
- return new Int8Datum(Long.valueOf(val));
+ return new Int8Datum(Long.parseLong(val));
}
public static Float4Datum createFloat4(float val) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-common/src/main/java/org/apache/tajo/datum/Inet4Datum.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/Inet4Datum.java b/tajo-common/src/main/java/org/apache/tajo/datum/Inet4Datum.java
index 0663f0a..991fa70 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/Inet4Datum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/Inet4Datum.java
@@ -32,10 +32,10 @@ public class Inet4Datum extends Datum {
public Inet4Datum(String addr) {
super(Type.INET4);
String [] elems = addr.split("\\.");
- address = Integer.valueOf(elems[3]) & 0xFF
- | ((Integer.valueOf(elems[2]) << 8) & 0xFF00)
- | ((Integer.valueOf(elems[1]) << 16) & 0xFF0000)
- | ((Integer.valueOf(elems[0]) << 24) & 0xFF000000);
+ address = Integer.parseInt(elems[3]) & 0xFF
+ | ((Integer.parseInt(elems[2]) << 8) & 0xFF00)
+ | ((Integer.parseInt(elems[1]) << 16) & 0xFF0000)
+ | ((Integer.parseInt(elems[0]) << 24) & 0xFF000000);
}
public Inet4Datum(byte[] addr) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-common/src/main/java/org/apache/tajo/datum/TextDatum.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/TextDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/TextDatum.java
index 6eb056f..669933f 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/TextDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/TextDatum.java
@@ -61,12 +61,12 @@ public class TextDatum extends Datum {
@Override
public int asInt4() {
- return Integer.valueOf(new String(bytes));
+ return Integer.parseInt(new String(bytes));
}
@Override
public long asInt8() {
- return Long.valueOf(new String(bytes));
+ return Long.parseLong(new String(bytes));
}
@Override
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java
index 8b18f08..21ae881 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java
@@ -129,7 +129,7 @@ public class TimeDatum extends Datum {
public Datum equalsTo(Datum datum) {
if (datum.type() == TajoDataTypes.Type.TIME) {
return DatumFactory.createBool(time.equals(((TimeDatum) datum).time));
- } else if (datum instanceof NullDatum || datum.isNull()) {
+ } else if (datum.isNull()) {
return datum;
} else {
throw new InvalidOperationException();
@@ -148,14 +148,11 @@ public class TimeDatum extends Datum {
}
public boolean equals(Object obj) {
- if (obj instanceof NullDatum) {
- return false;
- }
if (obj instanceof TimeDatum) {
TimeDatum another = (TimeDatum) obj;
return time.isEqual(another.time);
} else {
- throw new InvalidOperationException();
+ return false;
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java
index e7a9861..6411bec 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java
@@ -160,7 +160,7 @@ public class TimestampDatum extends Datum {
public Datum equalsTo(Datum datum) {
if (datum.type() == TajoDataTypes.Type.TIME) {
return DatumFactory.createBool(dateTime.equals(((TimestampDatum) datum).dateTime));
- } else if (datum instanceof NullDatum || datum.isNull()) {
+ } else if (datum.isNull()) {
return datum;
} else {
throw new InvalidOperationException();
@@ -180,14 +180,11 @@ public class TimestampDatum extends Datum {
@Override
public boolean equals(Object obj) {
- if (obj instanceof NullDatum) {
- return false;
- }
if (obj instanceof TimestampDatum) {
TimestampDatum another = (TimestampDatum) obj;
return dateTime.isEqual(another.dateTime);
} else {
- throw new InvalidOperationException();
+ return false;
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/FieldEval.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/FieldEval.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/FieldEval.java
index 504023a..ea2b031 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/FieldEval.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/FieldEval.java
@@ -97,7 +97,7 @@ public class FieldEval extends EvalNode implements Cloneable {
@Override
public Object clone() throws CloneNotSupportedException {
FieldEval eval = (FieldEval) super.clone();
- eval.column = (Column) this.column.clone();
+ eval.column = this.column;
eval.fieldId = fieldId;
return eval;
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/Target.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/Target.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/Target.java
index 6e4580d..6a16d3c 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/Target.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/Target.java
@@ -117,7 +117,7 @@ public class Target implements Cloneable, GsonObject {
public Object clone() throws CloneNotSupportedException {
Target target = (Target) super.clone();
target.expr = (EvalNode) expr.clone();
- target.column = (Column) column.clone();
+ target.column = column;
target.alias = alias != null ? alias : null;
return target;
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java
index 76b51c2..bafe0c6 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java
@@ -127,7 +127,7 @@ public class GroupbyNode extends UnaryNode implements Projectable, Cloneable {
if (groupingColumns != null) {
grp.groupingColumns = new Column[groupingColumns.length];
for (int i = 0; i < groupingColumns.length; i++) {
- grp.groupingColumns[i] = (Column) groupingColumns[i].clone();
+ grp.groupingColumns[i] = groupingColumns[i];
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoPreparedStatement.java
----------------------------------------------------------------------
diff --git a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoPreparedStatement.java b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoPreparedStatement.java
index e2b47c1..c1d0ad2 100644
--- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoPreparedStatement.java
+++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoPreparedStatement.java
@@ -100,7 +100,7 @@ public class TajoPreparedStatement implements PreparedStatement {
protected ResultSet executeImmediate(String sql) throws SQLException {
if (isClosed) {
- throw new SQLFeatureNotSupportedException("Can't execute after statement has been closed");
+ throw new SQLException("Can't execute after statement has been closed");
}
try {
@@ -109,7 +109,7 @@ public class TajoPreparedStatement implements PreparedStatement {
}
resultSet = tajoClient.executeQueryAndGetResult(sql);
} catch (Exception e) {
- throw new SQLFeatureNotSupportedException(e.getMessage(), e);
+ throw new SQLException(e.getMessage(), e);
}
return resultSet;
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-project/pom.xml
----------------------------------------------------------------------
diff --git a/tajo-project/pom.xml b/tajo-project/pom.xml
index 7f78724..6a2ff26 100644
--- a/tajo-project/pom.xml
+++ b/tajo-project/pom.xml
@@ -437,7 +437,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
- <version>2.3.2</version>
+ <version>2.5.3</version>
<configuration>
<findbugsXmlOutput>true</findbugsXmlOutput>
<xmlOutput>true</xmlOutput>
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-rpc/src/main/java/org/apache/tajo/rpc/ServerCallable.java
----------------------------------------------------------------------
diff --git a/tajo-rpc/src/main/java/org/apache/tajo/rpc/ServerCallable.java b/tajo-rpc/src/main/java/org/apache/tajo/rpc/ServerCallable.java
index f2efa4b..214a4ba 100644
--- a/tajo-rpc/src/main/java/org/apache/tajo/rpc/ServerCallable.java
+++ b/tajo-rpc/src/main/java/org/apache/tajo/rpc/ServerCallable.java
@@ -30,7 +30,6 @@ import org.apache.tajo.conf.TajoConf;
public abstract class ServerCallable<T> {
protected InetSocketAddress addr;
- protected TajoConf tajoConf;
protected long startTime;
protected long endTime;
protected Class protocol;
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-storage/src/main/java/org/apache/tajo/storage/MemoryUtil.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/MemoryUtil.java b/tajo-storage/src/main/java/org/apache/tajo/storage/MemoryUtil.java
index 3218f4d..f19b61f 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/MemoryUtil.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/MemoryUtil.java
@@ -153,6 +153,8 @@ public class MemoryUtil {
total += TIMESTAMP_DATUM;
break;
+ default:
+ break;
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-storage/src/main/java/org/apache/tajo/storage/TupleRange.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/TupleRange.java b/tajo-storage/src/main/java/org/apache/tajo/storage/TupleRange.java
index 1309116..3232056 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/TupleRange.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/TupleRange.java
@@ -91,7 +91,7 @@ public class TupleRange implements Comparable<TupleRange> {
@Override
public int compare(TupleRange left, TupleRange right) {
- return -(left.compareTo(right));
+ return right.compareTo(left);
}
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-storage/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java b/tajo-storage/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java
index 2ae04d5..a7a144b 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java
@@ -415,13 +415,12 @@ public class BSTIndex implements IndexMethod {
public long find(Tuple key, boolean nextKey) throws IOException {
synchronized (mutex) {
int pos = -1;
- switch (this.level) {
- case ONE_LEVEL_INDEX:
+ if (this.level == ONE_LEVEL_INDEX) {
pos = oneLevBS(key);
- break;
- case TWO_LEVEL_INDEX:
+ } else if (this.level == TWO_LEVEL_INDEX) {
pos = twoLevBS(key, this.loadNum + 1);
- break;
+ } else {
+ throw new IOException("More than TWL_LEVEL_INDEX is not supported.");
}
if (nextKey) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/06a14960/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java b/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java
index 2c35148..a17fbf3 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java
@@ -161,6 +161,7 @@ public class TrevniAppender extends FileAppender {
case INET4:
case INET6:
writer.writeValue(t.get(i).asByteArray(), i);
+ break;
default:
break;