From 8f9a00e1b6104726a3b5e64f5f8d99ced8e695c5 Mon Sep 17 00:00:00 2001 From: Chris Recoskie Date: Fri, 18 Jan 2013 10:05:42 -0500 Subject: [PATCH] Bug 398499 - FileContent.adapt(CodeReader) does not properly set timestamps Change-Id: I57fdacfc2fef225a6b3942b1be185ae79bb28c31 --- .../eclipse/cdt/core/parser/FileContent.java | 18 ++++++++++++++++-- 1 file changed, 16 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..c9821eaacf1 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,13 @@ * 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 java.io.InputStream; + import org.eclipse.cdt.core.dom.ast.IASTFileLocation; import org.eclipse.cdt.core.index.IIndexFileLocation; import org.eclipse.cdt.core.model.ITranslationUnit; @@ -133,6 +137,16 @@ 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(); + String path = reader.getPath(); + File file = new File(path); + + CharArray chars = new CharArray(reader.buffer); + + + FileContent fileContent = new InternalFileContent(path, chars , file.lastModified(), file.length(), fileReadTime); + + return fileContent; } }