--- old/src/share/vm/gc/g1/g1ConcurrentMark.cpp 2017-03-08 10:51:31.253191120 +0100 +++ new/src/share/vm/gc/g1/g1ConcurrentMark.cpp 2017-03-08 10:51:31.139187743 +0100 @@ -2408,11 +2408,11 @@ size_t n = 0; G1TaskQueueEntry task_entry; while (n < G1CMMarkStack::EntriesPerChunk && _task_queue->pop_local(task_entry)) { - buffer[n] = task_entry; + buffer[n].assign(task_entry); ++n; } if (n < G1CMMarkStack::EntriesPerChunk) { - buffer[n] = G1TaskQueueEntry(); + buffer[n].assign(G1TaskQueueEntry()); } if (n > 0) {