You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hx...@apache.org on 2019/05/25 06:06:51 UTC
[incubator-iotdb] branch master updated: [IOTDB-95]keep stack trace
when logging or throwing an Exception (#180)
This is an automated email from the ASF dual-hosted git repository.
hxd pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 2fbd949 [IOTDB-95]keep stack trace when logging or throwing an Exception (#180)
2fbd949 is described below
commit 2fbd949b087a5e0fd8552b0384d88a877bc22f2b
Author: Jiang Tian <jt...@163.com>
AuthorDate: Sat May 25 14:06:47 2019 +0800
[IOTDB-95]keep stack trace when logging or throwing an Exception (#180)
* keep stack trace when logging or throwing an Exception
---
.../org/apache/iotdb/tsfile/hadoop/TSFRecordWriter.java | 11 +++--------
.../apache/iotdb/tsfile/hadoop/example/TsFileHelper.java | 6 ++----
.../java/cn/edu/thu/tsfile/hadoop/TsFileTestHelper.java | 6 ++----
.../apache/iotdb/db/auth/authorizer/BasicAuthorizer.java | 3 +--
.../db/exception/BufferWriteProcessorException.java | 2 +-
.../iotdb/db/exception/FileNodeProcessorException.java | 2 +-
.../iotdb/db/exception/OverflowProcessorException.java | 2 +-
.../iotdb/db/exception/qp/IllegalASTFormatException.java | 7 +++++++
.../iotdb/db/exception/qp/LogicalOperatorException.java | 7 +++++++
.../iotdb/db/exception/qp/LogicalOptimizeException.java | 7 +++++++
.../iotdb/db/exception/qp/QueryProcessorException.java | 4 ++++
.../main/java/org/apache/iotdb/db/qp/QueryProcessor.java | 2 +-
.../iotdb/db/qp/executor/QueryProcessExecutor.java | 2 +-
.../iotdb/db/qp/logical/crud/BasicFunctionOperator.java | 2 +-
.../apache/iotdb/db/qp/strategy/PhysicalGenerator.java | 2 +-
.../db/qp/strategy/optimizer/ConcatPathOptimizer.java | 9 +++------
.../org/apache/iotdb/db/service/CloseMergeService.java | 6 ++----
.../src/main/java/org/apache/iotdb/db/service/IoTDB.java | 9 +++------
.../java/org/apache/iotdb/db/service/JDBCService.java | 9 ++++-----
.../java/org/apache/iotdb/db/service/JMXService.java | 5 ++---
.../main/java/org/apache/iotdb/db/service/Monitor.java | 3 +--
.../org/apache/iotdb/db/service/RegisterManager.java | 2 +-
.../java/org/apache/iotdb/db/service/TSServiceImpl.java | 13 +++++++------
.../java/org/apache/iotdb/db/sql/parse/ParseDriver.java | 2 +-
.../main/java/org/apache/iotdb/db/utils/RecordUtils.java | 2 +-
.../db/writelog/manager/MultiFileLogNodeManager.java | 9 ++-------
.../iotdb/db/writelog/node/ExclusiveWriteLogNode.java | 2 +-
.../writelog/recover/ExclusiveLogRecoverPerformer.java | 11 ++++-------
.../iotdb/db/writelog/replay/ConcreteLogReplayer.java | 2 +-
.../main/java/org/apache/iotdb/jdbc/IoTDBConnection.java | 6 +++---
.../main/java/org/apache/iotdb/jdbc/IoTDBStatement.java | 6 +++---
.../iotdb/tsfile/exception/write/PageException.java | 8 ++++++++
.../tsfile/exception/write/WriteProcessException.java | 16 +++++++++-------
.../org/apache/iotdb/tsfile/write/chunk/ChunkBuffer.java | 7 +++----
.../apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java | 7 ++-----
35 files changed, 101 insertions(+), 98 deletions(-)
diff --git a/hadoop/src/main/java/org/apache/iotdb/tsfile/hadoop/TSFRecordWriter.java b/hadoop/src/main/java/org/apache/iotdb/tsfile/hadoop/TSFRecordWriter.java
index 346d8c9..ad88824 100644
--- a/hadoop/src/main/java/org/apache/iotdb/tsfile/hadoop/TSFRecordWriter.java
+++ b/hadoop/src/main/java/org/apache/iotdb/tsfile/hadoop/TSFRecordWriter.java
@@ -46,17 +46,14 @@ public class TSFRecordWriter extends RecordWriter<NullWritable, TSRow> {
try {
fileSchema = new FileSchema(schema);
} catch (InvalidJsonSchemaException e) {
- e.printStackTrace();
- LOGGER.error("Construct the tsfile schema failed, the reason is {}", e.getMessage());
- throw new InterruptedException(e.getMessage());
+ throw new InterruptedException(String.format("Construct the tsfile schema failed"), e);
}
HDFSOutputStream hdfsOutputStream = new HDFSOutputStream(path, new Configuration(), false);
try {
write = new TsFile(hdfsOutputStream, fileSchema);
} catch (WriteProcessException e) {
- e.printStackTrace();
- throw new IOException(e.getMessage());
+ throw new IOException(e);
}
}
@@ -66,9 +63,7 @@ public class TSFRecordWriter extends RecordWriter<NullWritable, TSRow> {
try {
write.writeRecord(value.getRow());
} catch (WriteProcessException e) {
- e.printStackTrace();
- LOGGER.error("Write tsfile record error, the error message is {}", e.getMessage());
- throw new InterruptedException(e.getMessage());
+ throw new InterruptedException(String.format("Write tsfile record error"), e);
}
}
diff --git a/hadoop/src/main/java/org/apache/iotdb/tsfile/hadoop/example/TsFileHelper.java b/hadoop/src/main/java/org/apache/iotdb/tsfile/hadoop/example/TsFileHelper.java
index d648029..23dcd48 100644
--- a/hadoop/src/main/java/org/apache/iotdb/tsfile/hadoop/example/TsFileHelper.java
+++ b/hadoop/src/main/java/org/apache/iotdb/tsfile/hadoop/example/TsFileHelper.java
@@ -75,11 +75,9 @@ public class TsFileHelper {
tsFile.writeLine("root.car.d2,8, s1, 8, s2, 80, s3, 200.8, s4, 0.8");
tsFile.close();
} catch (IOException e) {
- e.printStackTrace();
- throw new RuntimeException(e.getMessage());
+ throw new RuntimeException(e);
} catch (WriteProcessException e) {
- e.printStackTrace();
- throw new RuntimeException(e.getMessage());
+ throw new RuntimeException(e);
}
}
diff --git a/hadoop/src/test/java/cn/edu/thu/tsfile/hadoop/TsFileTestHelper.java b/hadoop/src/test/java/cn/edu/thu/tsfile/hadoop/TsFileTestHelper.java
index a80f3cd..a1e832d 100644
--- a/hadoop/src/test/java/cn/edu/thu/tsfile/hadoop/TsFileTestHelper.java
+++ b/hadoop/src/test/java/cn/edu/thu/tsfile/hadoop/TsFileTestHelper.java
@@ -75,11 +75,9 @@ public class TsFileTestHelper {
tsFile.writeLine("root.car.d2,8, s1, 8, s2, 80, s3, 200.8, s4, 0.8");
tsFile.close();
} catch (IOException e) {
- e.printStackTrace();
- throw new RuntimeException(e.getMessage());
+ throw new RuntimeException(e);
} catch (WriteProcessException e) {
- e.printStackTrace();
- throw new RuntimeException(e.getMessage());
+ throw new RuntimeException(e);
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java b/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
index 07f1033..439b3d2 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
@@ -243,8 +243,7 @@ public abstract class BasicAuthorizer implements IAuthorizer, IService {
try {
init();
} catch (AuthException e) {
- LOGGER.error("Auth authentication error : ", e);
- throw new StartupException(e.getMessage());
+ throw new StartupException(e);
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/exception/BufferWriteProcessorException.java b/iotdb/src/main/java/org/apache/iotdb/db/exception/BufferWriteProcessorException.java
index bf6a349..19b2908 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/exception/BufferWriteProcessorException.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/exception/BufferWriteProcessorException.java
@@ -35,7 +35,7 @@ public class BufferWriteProcessorException extends ProcessorException {
}
public BufferWriteProcessorException(Throwable throwable) {
- super(throwable.getMessage());
+ super(throwable);
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/exception/FileNodeProcessorException.java b/iotdb/src/main/java/org/apache/iotdb/db/exception/FileNodeProcessorException.java
index d3cf362..459430a 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/exception/FileNodeProcessorException.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/exception/FileNodeProcessorException.java
@@ -35,7 +35,7 @@ public class FileNodeProcessorException extends ProcessorException {
}
public FileNodeProcessorException(Throwable throwable) {
- super(throwable.getMessage());
+ super(throwable);
}
public FileNodeProcessorException(String msg, Throwable e) {
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/exception/OverflowProcessorException.java b/iotdb/src/main/java/org/apache/iotdb/db/exception/OverflowProcessorException.java
index 21ac261..77361c0 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/exception/OverflowProcessorException.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/exception/OverflowProcessorException.java
@@ -35,7 +35,7 @@ public class OverflowProcessorException extends ProcessorException {
}
public OverflowProcessorException(Throwable throwable) {
- super(throwable.getMessage());
+ super(throwable);
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/IllegalASTFormatException.java b/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/IllegalASTFormatException.java
index bb7c359..52624a8 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/IllegalASTFormatException.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/IllegalASTFormatException.java
@@ -29,4 +29,11 @@ public class IllegalASTFormatException extends QueryProcessorException {
super(msg);
}
+ public IllegalASTFormatException(Throwable e) {
+ super(e);
+ }
+
+ public IllegalASTFormatException(String message, Throwable cause) {
+ super(message, cause);
+ }
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/LogicalOperatorException.java b/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/LogicalOperatorException.java
index 91d9424..f3e3dba 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/LogicalOperatorException.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/LogicalOperatorException.java
@@ -29,4 +29,11 @@ public class LogicalOperatorException extends QueryProcessorException {
super(msg);
}
+ public LogicalOperatorException(Throwable e) {
+ super(e);
+ }
+
+ public LogicalOperatorException(String message, Throwable cause) {
+ super(message, cause);
+ }
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/LogicalOptimizeException.java b/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/LogicalOptimizeException.java
index df32ce2..239a7fe 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/LogicalOptimizeException.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/LogicalOptimizeException.java
@@ -29,4 +29,11 @@ public class LogicalOptimizeException extends LogicalOperatorException {
super(msg);
}
+ public LogicalOptimizeException(Throwable e) {
+ super(e);
+ }
+
+ public LogicalOptimizeException(String message, Throwable cause) {
+ super(message, cause);
+ }
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/QueryProcessorException.java b/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/QueryProcessorException.java
index 358227b..516c42b 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/QueryProcessorException.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/exception/qp/QueryProcessorException.java
@@ -33,4 +33,8 @@ public class QueryProcessorException extends Exception {
public QueryProcessorException(Throwable e) {
super(e);
}
+
+ public QueryProcessorException(String message, Throwable cause) {
+ super(message, cause);
+ }
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/qp/QueryProcessor.java b/iotdb/src/main/java/org/apache/iotdb/db/qp/QueryProcessor.java
index f63514d..74a1abf 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/qp/QueryProcessor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/qp/QueryProcessor.java
@@ -108,7 +108,7 @@ public class QueryProcessor {
} catch (ParseException e) {
// e.printStackTrace();
throw new IllegalASTFormatException(
- "parsing error,statement: " + sqlStr + " .message:" + e.getMessage());
+ "parsing error,statement: " + sqlStr, e);
}
return ParseUtils.findRootNonNullToken(astTree);
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/qp/executor/QueryProcessExecutor.java b/iotdb/src/main/java/org/apache/iotdb/db/qp/executor/QueryProcessExecutor.java
index 99476f2..17768aa 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/qp/executor/QueryProcessExecutor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/qp/executor/QueryProcessExecutor.java
@@ -110,7 +110,7 @@ public abstract class QueryProcessExecutor implements IQueryProcessExecutor {
}
return result;
} catch (PathErrorException e) {
- throw new ProcessorException(e.getMessage());
+ throw new ProcessorException(e);
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/qp/logical/crud/BasicFunctionOperator.java b/iotdb/src/main/java/org/apache/iotdb/db/qp/logical/crud/BasicFunctionOperator.java
index 1610554..5b8815f 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/qp/logical/crud/BasicFunctionOperator.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/qp/logical/crud/BasicFunctionOperator.java
@@ -152,7 +152,7 @@ public class BasicFunctionOperator extends FunctionOperator {
try {
ret = new BasicFunctionOperator(this.tokenIntType, path.clone(), value);
} catch (LogicalOperatorException e) {
- logger.error("error clone:{}", e.getMessage());
+ logger.error("error clone:", e);
return null;
}
ret.tokenSymbol = tokenSymbol;
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java b/iotdb/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java
index ff13a2c..ffa0cdf 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java
@@ -74,7 +74,7 @@ public class PhysicalGenerator {
author.getPassWord(), author.getNewPassword(), author.getPrivilegeList(),
author.getNodeName());
} catch (AuthException e) {
- throw new QueryProcessorException(e.getMessage());
+ throw new QueryProcessorException(e);
}
case LOADDATA:
LoadDataOperator loadData = (LoadDataOperator) operator;
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java b/iotdb/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
index 9736f7c..bdac149 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
@@ -306,8 +306,7 @@ public class ConcatPathOptimizer implements ILogicalOptimizer {
new BasicFunctionOperator(operator.getTokenIntType(), noStarPaths.get(i),
((BasicFunctionOperator) operator).getValue()));
} catch (LogicalOperatorException e) {
- LOG.error("meet error while adding child operator to current node.", e);
- throw new LogicalOptimizeException(e.getMessage());
+ throw new LogicalOptimizeException(e);
}
}
return filterTwoFolkTree;
@@ -336,8 +335,7 @@ public class ConcatPathOptimizer implements ILogicalOptimizer {
retPaths.add(new Path(pathStr));
}
} catch (PathErrorException e) {
- LOG.error("meet error while removing star.", e);
- throw new LogicalOptimizeException("error when remove star: " + e.getMessage());
+ throw new LogicalOptimizeException("error when remove star: ", e);
}
return retPaths;
}
@@ -356,8 +354,7 @@ public class ConcatPathOptimizer implements ILogicalOptimizer {
}
}
} catch (PathErrorException e) {
- LOG.error("meet error while removing star.", e);
- throw new LogicalOptimizeException("error when remove star: " + e.getMessage());
+ throw new LogicalOptimizeException("error when remove star: ", e);
}
}
if (retPaths.isEmpty()) {
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/service/CloseMergeService.java b/iotdb/src/main/java/org/apache/iotdb/db/service/CloseMergeService.java
index 0915cd3..4131396 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/service/CloseMergeService.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/service/CloseMergeService.java
@@ -119,10 +119,8 @@ public class CloseMergeService implements IService {
startService();
} catch (Exception e) {
String errorMessage = String
- .format("Failed to start %s because of %s", this.getID().getName(),
- e.getMessage());
- LOGGER.error(errorMessage);
- throw new StartupException(errorMessage);
+ .format("Failed to start %s", this.getID().getName());
+ throw new StartupException(errorMessage, e);
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/service/IoTDB.java b/iotdb/src/main/java/org/apache/iotdb/db/service/IoTDB.java
index d9a1938..a7cf296 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/service/IoTDB.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/service/IoTDB.java
@@ -61,8 +61,8 @@ public class IoTDB implements IoTDBMBean {
checks.verify();
} catch (StartupException e) {
// TODO: what are some checks
- LOGGER.error("{}: failed to start because some checks failed. {}",
- IoTDBConstant.GLOBAL_DB_NAME, e.getMessage());
+ LOGGER.error("{}: failed to start because some checks failed. ",
+ IoTDBConstant.GLOBAL_DB_NAME, e);
return;
}
try {
@@ -86,10 +86,7 @@ public class IoTDB implements IoTDBMBean {
try {
systemDataRecovery();
} catch (RecoverException e) {
- String errorMessage = String.format("Failed to recover system data because of %s",
- e.getMessage());
- LOGGER.error(errorMessage);
- throw new StartupException(errorMessage);
+ throw new StartupException("Fail to recover data", e);
}
// When registering statMonitor, we should start recovering some statistics
// with latest values stored
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/service/JDBCService.java b/iotdb/src/main/java/org/apache/iotdb/db/service/JDBCService.java
index 1326e23..a18e263 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/service/JDBCService.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/service/JDBCService.java
@@ -129,12 +129,11 @@ public class JDBCService implements JDBCServiceMBean, IService {
jdbcServiceThread.setName(ThreadName.JDBC_SERVICE.getName());
jdbcServiceThread.start();
startLatch.await();
- } catch (IOException | InterruptedException | ClassNotFoundException | IllegalAccessException | InstantiationException e) {
+ } catch (IOException | InterruptedException | ClassNotFoundException |
+ IllegalAccessException | InstantiationException e) {
String errorMessage = String
- .format("Failed to start %s because of %s", this.getID().getName(),
- e.getMessage());
- LOGGER.error(errorMessage);
- throw new StartupException(errorMessage);
+ .format("Failed to start %s", this.getID().getName());
+ throw new StartupException(errorMessage, e);
}
LOGGER.info("{}: start {} successfully, listening on ip {} port {}", IoTDBConstant.GLOBAL_DB_NAME,
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/service/JMXService.java b/iotdb/src/main/java/org/apache/iotdb/db/service/JMXService.java
index 74e5691..9ddc9da 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/service/JMXService.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/service/JMXService.java
@@ -138,8 +138,7 @@ public class JMXService implements IService {
String errorMessage = String
.format("Failed to start %s because of %s", this.getID().getName(),
e.getMessage());
- LOGGER.error(errorMessage);
- throw new StartupException(errorMessage);
+ throw new StartupException(errorMessage, e);
}
}
@@ -151,7 +150,7 @@ public class JMXService implements IService {
LOGGER.info("{}: close {} successfully", IoTDBConstant.GLOBAL_DB_NAME,
this.getID().getName());
} catch (IOException e) {
- LOGGER.error("Failed to stop {} because of {}", this.getID().getName(), e.getMessage());
+ LOGGER.error("Failed to stop {} because of: ", this.getID().getName(), e);
}
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/service/Monitor.java b/iotdb/src/main/java/org/apache/iotdb/db/service/Monitor.java
index 6348f50..53fb90f 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/service/Monitor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/service/Monitor.java
@@ -148,8 +148,7 @@ public class Monitor implements MonitorMBean, IService {
String errorMessage = String
.format("Failed to start %s because of %s", this.getID().getName(),
e.getMessage());
- LOGGER.error(errorMessage);
- throw new StartupException(errorMessage);
+ throw new StartupException(errorMessage, e);
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/service/RegisterManager.java b/iotdb/src/main/java/org/apache/iotdb/db/service/RegisterManager.java
index 5a9f327..cec2233 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/service/RegisterManager.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/service/RegisterManager.java
@@ -55,7 +55,7 @@ public class RegisterManager {
try {
service.stop();
} catch (Exception e) {
- LOGGER.error("Failed to stop {} because {}", service.getID().getName(), e.getMessage());
+ LOGGER.error("Failed to stop {} because:", service.getID().getName(), e);
}
}
iServices.clear();
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java b/iotdb/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index b02f1c2..592b009 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@ -193,7 +193,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
clearAllStatusForCurrentRequest();
} catch (Exception e) {
- LOGGER.error("Error in closeOperation : {}", e.getMessage());
+ LOGGER.error("Error in closeOperation : ", e);
}
return new TSCloseOperationResp(new TS_Status(TS_StatusCode.SUCCESS_STATUS));
}
@@ -465,6 +465,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
"Fail to generate physcial plan and execute for statement "
+ "%s beacuse %s",
statement, e.getMessage());
+ LOGGER.warn("Error occurred when executing {}", statement, e);
result.add(Statement.EXECUTE_FAILED);
isAllSuccessful = false;
batchErrorMessage = errMessage;
@@ -506,6 +507,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
"Execute set consistency level successfully");
}
} catch (Exception e) {
+ LOGGER.error("Error occurred when executing statement {}", statement, e);
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
}
@@ -514,11 +516,11 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
physicalPlan = processor.parseSQLToPhysicalPlan(statement, zoneIds.get());
physicalPlan.setProposer(username.get());
} catch (IllegalASTFormatException e) {
- LOGGER.debug("meet error while parsing SQL to physical plan: {}", e.getMessage());
+ LOGGER.debug("meet error while parsing SQL to physical plan: ", e);
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS,
"Statement format is not right:" + e.getMessage());
} catch (NullPointerException e) {
- LOGGER.error("meet error while parsing SQL to physical plan.", e);
+ LOGGER.error("meet error while parsing SQL to physical plan: ", e);
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, "Statement is not allowed");
}
if (physicalPlan.isQuery()) {
@@ -527,8 +529,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return executeUpdateStatement(physicalPlan);
}
} catch (Exception e) {
- LOGGER.info("meet error: {} while executing statement: {}", e.getMessage(),
- req.getStatement());
+ LOGGER.info("meet error while executing statement: {}", req.getStatement(), e);
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
}
}
@@ -756,7 +757,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
try {
execRet = executeNonQuery(plan);
} catch (ProcessorException e) {
- LOGGER.debug("meet error while processing non-query. {}", e.getMessage());
+ LOGGER.debug("meet error while processing non-query. ", e);
return getTSExecuteStatementResp(TS_StatusCode.ERROR_STATUS, e.getMessage());
}
TS_StatusCode statusCode = execRet ? TS_StatusCode.SUCCESS_STATUS : TS_StatusCode.ERROR_STATUS;
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/sql/parse/ParseDriver.java b/iotdb/src/main/java/org/apache/iotdb/db/sql/parse/ParseDriver.java
index 6491d4b..9be7d05 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/sql/parse/ParseDriver.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/sql/parse/ParseDriver.java
@@ -97,7 +97,7 @@ public class ParseDriver {
r = parser.statement();
} catch (RecognitionException e) {
- LOG.trace("meet error: {} while parsing statement: {}", e.getMessage(), command);
+ LOG.trace("meet error while parsing statement: {}", command, e);
}
if (lexer.getErrors().isEmpty() && parser.errors.isEmpty()) {
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/utils/RecordUtils.java b/iotdb/src/main/java/org/apache/iotdb/db/utils/RecordUtils.java
index a77a294..5487ff2 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/utils/RecordUtils.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/utils/RecordUtils.java
@@ -106,7 +106,7 @@ public class RecordUtils {
break;
}
} catch (NumberFormatException e) {
- LOG.warn("parsing measurement meets error, omit it: {}", e.getMessage());
+ LOG.warn("parsing measurement {} meets error, omit it: ", str, e);
}
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java b/iotdb/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java
index 8bf9fb9..bf1e816 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java
@@ -137,12 +137,7 @@ public class MultiFileLogNodeManager implements WriteLogNodeManager, IService {
nodeList.addAll(nodeMap.values());
nodeList.sort(null);
for (WriteLogNode node : nodeList) {
- try {
- node.recover();
- } catch (RecoverException e) {
- logger.error("{} failed to recover because {}", node.toString(), e.getMessage());
- throw e;
- }
+ node.recover();
}
}
@@ -228,7 +223,7 @@ public class MultiFileLogNodeManager implements WriteLogNodeManager, IService {
String errorMessage = String
.format("Failed to start %s because of %s", this.getID().getName(),
e.getMessage());
- throw new StartupException(errorMessage);
+ throw new StartupException(errorMessage, e);
}
}
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java b/iotdb/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java
index d8e99ae..1b2682f 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java
@@ -124,7 +124,7 @@ public class ExclusiveWriteLogNode implements WriteLogNode, Comparable<Exclusive
this.currentFileWriter.close();
logger.debug("Log node {} closed successfully", identifier);
} catch (IOException e) {
- logger.error("Cannot close log node {} because {}", identifier, e.getMessage());
+ logger.error("Cannot close log node {} because:", identifier, e);
}
unlockForForceOther();
unlockForOther();
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/ExclusiveLogRecoverPerformer.java b/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/ExclusiveLogRecoverPerformer.java
index 15e88dd..0b58283 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/ExclusiveLogRecoverPerformer.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/ExclusiveLogRecoverPerformer.java
@@ -246,10 +246,8 @@ public class ExclusiveLogRecoverPerformer implements RecoverPerformer {
FileUtils.copyFile(recoverProcessorStoreFile, new File(processorStoreFilePath));
}
} catch (Exception e) {
- logger.error("Log node {} cannot recover processor file, because{}",
- writeLogNode.getLogDirectory(),
- e.getMessage());
- throw new RecoverException("Cannot recover processor file, recovery aborted.");
+ throw new RecoverException(String.format("Log node %s cannot recover processor file,"
+ + " recovery aborted.", writeLogNode.getLogDirectory()), e);
}
fileNodeRecoverPerformer.recover();
@@ -316,9 +314,8 @@ public class ExclusiveLogRecoverPerformer implements RecoverPerformer {
try {
FileNodeManager.getInstance().closeOneFileNode(writeLogNode.getFileNodeName());
} catch (FileNodeManagerException e) {
- logger.error("Log node {} cannot perform flush after replaying logs! Because {}",
- writeLogNode.getIdentifier(), e.getMessage());
- throw new RecoverException(e);
+ throw new RecoverException(String.format("Log node %s cannot perform flush"
+ + " after replaying logs!", writeLogNode.getIdentifier()), e);
}
currStage = CLEAN_UP;
setFlag(REPLAY_LOG);
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/writelog/replay/ConcreteLogReplayer.java b/iotdb/src/main/java/org/apache/iotdb/db/writelog/replay/ConcreteLogReplayer.java
index 6573884..e45f5cb 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/writelog/replay/ConcreteLogReplayer.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/writelog/replay/ConcreteLogReplayer.java
@@ -57,7 +57,7 @@ public class ConcreteLogReplayer implements LogReplayer {
}
} catch (Exception e) {
throw new ProcessorException(
- String.format("Cannot replay log %s, because %s", plan.toString(), e.getMessage()));
+ String.format("Cannot replay log %s", plan.toString()), e);
}
}
diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBConnection.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBConnection.java
index 815725a..e94b926 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBConnection.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBConnection.java
@@ -410,7 +410,7 @@ public class IoTDBConnection implements Connection {
try {
transport.getSocket().setKeepAlive(true);
} catch (SocketException e) {
- logger.error("Cannot set socket keep alive because: " + e.getMessage());
+ logger.error("Cannot set socket keep alive because: ", e);
}
if (!transport.isOpen()) {
transport.open();
@@ -447,8 +447,8 @@ public class IoTDBConnection implements Connection {
}
} catch (TException e) {
- throw new SQLException(String.format("Can not establish connection with %s. because %s",
- params.getJdbcUriString(), e.getMessage()));
+ throw new SQLException(String.format("Can not establish connection with %s.",
+ params.getJdbcUriString()), e);
}
isClosed = false;
}
diff --git a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBStatement.java b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBStatement.java
index c5e7235..fe56bbc 100644
--- a/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBStatement.java
+++ b/jdbc/src/main/java/org/apache/iotdb/jdbc/IoTDBStatement.java
@@ -139,7 +139,7 @@ public class IoTDBStatement implements Statement {
Utils.verifySuccess(closeResp.getStatus());
}
} catch (Exception e) {
- throw new SQLException("Error occurs when canceling statement because " + e.getMessage(), e);
+ throw new SQLException("Error occurs when canceling statement.", e);
}
isCancelled = true;
}
@@ -165,7 +165,7 @@ public class IoTDBStatement implements Statement {
Utils.verifySuccess(closeResp.getStatus());
}
} catch (Exception e) {
- throw new SQLException("Error occurs when closing statement because " + e.getMessage(), e);
+ throw new SQLException("Error occurs when closing statement.", e);
}
}
@@ -583,7 +583,7 @@ public class IoTDBStatement implements Statement {
return resp.getDataType();
} catch (TException | IoTDBSQLException e) {
throw new SQLException(
- String.format("Cannot get column %s data type because %s", columnName, e.getMessage()), e);
+ String.format("Cannot get column %s data type", columnName), e);
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/write/PageException.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/write/PageException.java
index c38a25b..eee08ec 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/write/PageException.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/write/PageException.java
@@ -28,4 +28,12 @@ public class PageException extends WriteProcessException {
public PageException(String msg) {
super(msg);
}
+
+ public PageException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public PageException(Throwable cause) {
+ super(cause);
+ }
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/write/WriteProcessException.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/write/WriteProcessException.java
index 8b50038..dcadd01 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/write/WriteProcessException.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/exception/write/WriteProcessException.java
@@ -26,15 +26,17 @@ package org.apache.iotdb.tsfile.exception.write;
public class WriteProcessException extends Exception {
private static final long serialVersionUID = -2664638061585302767L;
- private final String errMsg;
- public WriteProcessException(String msg) {
- super(msg);
- this.errMsg = msg;
+
+ public WriteProcessException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public WriteProcessException(String message) {
+ super(message);
}
- @Override
- public String getMessage() {
- return errMsg;
+ public WriteProcessException(Throwable cause) {
+ super(cause);
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkBuffer.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkBuffer.java
index 8b0a5f8..4f452a6 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkBuffer.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkBuffer.java
@@ -113,7 +113,7 @@ public class ChunkBuffer {
compressedSize = compressor
.compress(data.array(), data.position(), data.remaining(), compressedBytes);
} catch (IOException e) {
- throw new PageException("Error when writing a page, " + e.getMessage());
+ throw new PageException(e);
}
}
@@ -133,7 +133,7 @@ public class ChunkBuffer {
} catch (IOException e) {
resetTimeStamp();
throw new PageException(
- "IO Exception in writeDataPageHeader,ignore this page,error message:" + e.getMessage());
+ "IO Exception in writeDataPageHeader,ignore this page", e);
}
// update data point num
@@ -153,8 +153,7 @@ public class ChunkBuffer {
}
LOG.debug("start to flush a page data into buffer, buffer position {} ", pageBuffer.size());
} catch (IOException e) {
- throw new PageException(
- "meet IO Exception in buffer append,but we cannot understand it:" + e.getMessage());
+ throw new PageException(e);
}
return headerSize + uncompressedSize;
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
index cefc065..1aa9932 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
@@ -244,13 +244,10 @@ public class ChunkWriterImpl implements IChunkWriter {
// update statistics of this series
this.chunkStatistics.mergeStatistics(this.pageStatistics);
} catch (IOException e) {
- LOG.error("meet error in dataPageWriter.getUncompressedBytes(),ignore this page, {}",
- e.getMessage());
+ LOG.error("meet error in dataPageWriter.getUncompressedBytes(),ignore this page:", e);
} catch (PageException e) {
LOG.error(
- "meet error in chunkBuffer.writePageHeaderAndDataIntoBuff, ignore this page, "
- + "error message:{}",
- e.getMessage());
+ "meet error in chunkBuffer.writePageHeaderAndDataIntoBuff, ignore this page:", e);
} finally {
// clear start time stamp for next initializing
minTimestamp = -1;