[
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