[ https://issues.apache.org/jira/browse/HIVE-3810?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
qiangwang updated HIVE-3810: ---------------------------- Description: HiveHistory.log will replace '\n' with space before writing Entry.value to history file: val = val.replace('\n', ' '); but HiveHistory.parseHiveHistory use BufferedReader.readLine which takes '\n', '\r', '\r\n' as line delimiter to parse history file if val contains '\r', there is a high possibility that HiveHistory.parseLine will fail, in which case usually RecordTypes.valueOf(recType) will throw exception 'java.lang.IllegalArgumentException' HiveHistory.log need to replace '\r' with space as well: - val = val.replace('\n', ' '); + val = val.replaceAll("\r|\n", " "); or - val = val.replace('\n', ' '); + val = val.replace('\r', ' ').replace('\n', ' '); was: HiveHistory.log will replace '\n' with space before writing Entry.value to history file: val = val.replace('\n', ' '); but HiveHistoryViewer use BufferedReader.readLine which takes '\n', '\r', '\r\n' as line delimiter to parse history file if val contains '\r', there is a high possibility that HiveHistoryViewer.parseLine will fail, in which case usually RecordTypes.valueOf(recType) will throw exception 'java.lang.IllegalArgumentException' HiveHistory.log need to replace '\r' with space as well: - val = val.replace('\n', ' '); + val = val.replaceAll("\r|\n", " "); or - val = val.replace('\n', ' '); + val = val.replace('\r', ' ').replace('\n', ' '); > HiveHistory.log need to replace '\r' with space before writing Entry.value to > historyfile > ----------------------------------------------------------------------------------------- > > Key: HIVE-3810 > URL: https://issues.apache.org/jira/browse/HIVE-3810 > Project: Hive > Issue Type: Bug > Components: Logging > Reporter: qiangwang > Priority: Minor > > HiveHistory.log will replace '\n' with space before writing Entry.value to > history file: > val = val.replace('\n', ' '); > but HiveHistory.parseHiveHistory use BufferedReader.readLine which takes > '\n', '\r', '\r\n' as line delimiter to parse history file > if val contains '\r', there is a high possibility that HiveHistory.parseLine > will fail, in which case usually RecordTypes.valueOf(recType) will throw > exception 'java.lang.IllegalArgumentException' > HiveHistory.log need to replace '\r' with space as well: > - val = val.replace('\n', ' '); > + val = val.replaceAll("\r|\n", " "); > or > - val = val.replace('\n', ' '); > + val = val.replace('\r', ' ').replace('\n', ' '); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira