This is an automated email from the ASF dual-hosted git repository. jiangtian pushed a commit to branch add_exception_trace in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit dcc215a6b47f56cea8212a720076485a66031535 Author: 江天 <[email protected]> AuthorDate: Fri May 24 10:28:28 2019 +0800 keep stack trace when logging or throwing an Exception --- .../org/apache/iotdb/tsfile/hadoop/TSFRecordWriter.java | 13 +++++-------- .../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 | 2 +- .../src/main/java/org/apache/iotdb/db/service/IoTDB.java | 9 +++------ .../java/org/apache/iotdb/db/service/JDBCService.java | 6 +++--- .../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 +++--- .../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 ++----- 34 files changed, 98 insertions(+), 90 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..776f3e6 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,15 @@ 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," + + " the reason is %s", e.getMessage()), 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 +64,8 @@ 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," + + " the error message is %s", e.getMessage()), 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..1f0b117 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 @@ -122,7 +122,7 @@ public class CloseMergeService implements IService { .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/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..ae222c7 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,12 @@ 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); + 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..495ce8e 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! Because %s", + writeLogNode.getIdentifier(), e.getMessage()), 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..2142303 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, because %s", plan.toString(), e.getMessage()), 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/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;
