From 6aebe7dcd584bb390a4ddac868e9f22a5009e6a2 Mon Sep 17 00:00:00 2001 From: Chris Recoskie Date: Fri, 18 Jan 2013 11:15:50 -0800 Subject: [PATCH] Bug 398499 - FileContent.adapt(CodeReader) does not properly set timestamps Change-Id: I57fdacfc2fef225a6b3942b1be185ae79bb28c31 Reviewed-on: https://git.eclipse.org/r/9756 Reviewed-by: Sergey Prigogin IP-Clean: Sergey Prigogin Tested-by: Sergey Prigogin IP-Clean: Chris Recoskie Reviewed-by: Chris Recoskie --- .../org/eclipse/cdt/core/parser/FileContent.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/FileContent.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/FileContent.java index fd7085fbd78..748a2245ad6 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/FileContent.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/FileContent.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2012 Wind River Systems, Inc. and others. + * Copyright (c) 2009, 2013 Wind River Systems, Inc. and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -8,9 +8,12 @@ * Contributors: * Markus Schorn - initial API and implementation * Sergey Prigogin (Google) + * Chris Recoskie (IBM Corporation) *******************************************************************************/ package org.eclipse.cdt.core.parser; +import java.io.File; + import org.eclipse.cdt.core.dom.ast.IASTFileLocation; import org.eclipse.cdt.core.index.IIndexFileLocation; import org.eclipse.cdt.core.model.ITranslationUnit; @@ -133,6 +136,11 @@ public abstract class FileContent { public static FileContent adapt(CodeReader reader) { if (reader == null) return null; - return create(reader.getPath(), reader.buffer); + + long fileReadTime = System.currentTimeMillis(); + CharArray chars = new CharArray(reader.buffer); + String filePath = reader.getPath(); + File file = new File(filePath); + return new InternalFileContent(filePath, chars, file.lastModified(), file.length(), fileReadTime); } }