# HG changeset patch # User thartmann # Date 1416985618 -3600 # Node ID e6f02d6fee4478acbd8ae05709f8973498de373c # Parent 8a8710cb8fc45ec17a378578557aeca50737879f 8007993: hotspot.log w/ enabled LogCompilation can be an invalid XML Summary: Open compilation log files in write-mode and close before deletion attempt. Reviewed-by: vlivanov diff -r 8a8710cb8fc4 -r e6f02d6fee44 hotspot/src/share/vm/compiler/compileBroker.cpp --- a/hotspot/src/share/vm/compiler/compileBroker.cpp Thu Nov 13 09:19:46 2014 +0100 +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp Wed Nov 26 08:06:58 2014 +0100 @@ -1807,7 +1807,7 @@ os::file_separator(), thread_id, os::current_process_id()); } - fp = fopen(file_name, "at"); + fp = fopen(file_name, "wt"); if (fp != NULL) { if (LogCompilation && Verbose) { tty->print_cr("Opening compilation log %s", file_name); diff -r 8a8710cb8fc4 -r e6f02d6fee44 hotspot/src/share/vm/compiler/compileLog.cpp --- a/hotspot/src/share/vm/compiler/compileLog.cpp Thu Nov 13 09:19:46 2014 +0100 +++ b/hotspot/src/share/vm/compiler/compileLog.cpp Wed Nov 26 08:06:58 2014 +0100 @@ -56,8 +56,10 @@ } CompileLog::~CompileLog() { - delete _out; + delete _out; // Close fd in fileStream::~fileStream() _out = NULL; + // Remove partial file after merging in CompileLog::finish_log_on_error + unlink(_file); FREE_C_HEAP_ARRAY(char, _identities, mtCompiler); FREE_C_HEAP_ARRAY(char, _file, mtCompiler); } @@ -278,10 +280,9 @@ } file->print_raw_cr(""); close(partial_fd); - unlink(partial_file); } CompileLog* next_log = log->_next; - delete log; + delete log; // Removes partial file log = next_log; } _first = NULL;