Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 200438 Details for
Bug 343509
External folders project is not created
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Updated patch
bug_343509_final.txt (text/plain), 24.19 KB, created by
Jay Arthanareeswaran
on 2011-07-27 07:29:38 EDT
(
hide
)
Description:
Updated patch
Filename:
MIME Type:
Creator:
Jay Arthanareeswaran
Created:
2011-07-27 07:29:38 EDT
Size:
24.19 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: model/org/eclipse/jdt/core/JavaCore.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaCore.java,v >retrieving revision 1.651.2.1 >diff -u -r1.651.2.1 JavaCore.java >--- model/org/eclipse/jdt/core/JavaCore.java 25 Jun 2010 14:59:05 -0000 1.651.2.1 >+++ model/org/eclipse/jdt/core/JavaCore.java 27 Jul 2011 11:24:11 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2010 IBM Corporation and others. >+ * Copyright (c) 2000, 2011 IBM Corporation 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 >@@ -3486,9 +3486,9 @@ > // and recreate links for external folders if needed > if (monitor != null) > monitor.subTask(Messages.javamodel_resetting_source_attachment_properties); >- ExternalFoldersManager externalFoldersManager = JavaModelManager.getExternalManager(); > final IJavaProject[] projects = manager.getJavaModel().getJavaProjects(); > HashSet visitedPaths = new HashSet(); >+ ExternalFoldersManager externalFoldersManager = JavaModelManager.getExternalManager(); > for (int i = 0, length = projects.length; i < length; i++) { > JavaProject javaProject = (JavaProject) projects[i]; > IClasspathEntry[] classpath; >@@ -3499,7 +3499,6 @@ > continue; > } > if (classpath != null) { >- boolean needExternalFolderCreation = false; > for (int j = 0, length2 = classpath.length; j < length2; j++) { > IClasspathEntry entry = classpath[j]; > if (entry.getSourceAttachmentPath() != null) { >@@ -3509,18 +3508,22 @@ > } > } > // else source might have been attached by IPackageFragmentRoot#attachSource(...), we keep it >- if (!needExternalFolderCreation && entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) { >+ if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) { > IPath entryPath = entry.getPath(); > if (ExternalFoldersManager.isExternalFolderPath(entryPath) && externalFoldersManager.getFolder(entryPath) == null) { >- needExternalFolderCreation = true; >+ externalFoldersManager.addFolder(entryPath, true); > } > } > } >- if (needExternalFolderCreation) >- manager.deltaState.addExternalFolderChange(javaProject, null/*act as if all external folders were new*/); > } > } >- >+ try { >+ externalFoldersManager.createPendingFolders(monitor); >+ } >+ catch(JavaModelException jme) { >+ // Creation of external folder project failed. Log it and continue; >+ Util.log(jme, "Error while processing external folders"); //$NON-NLS-1$ >+ } > // initialize delta state > if (monitor != null) > monitor.subTask(Messages.javamodel_initializing_delta_state); >Index: model/org/eclipse/jdt/internal/core/ExternalFolderChange.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ExternalFolderChange.java,v >retrieving revision 1.4 >diff -u -r1.4 ExternalFolderChange.java >--- model/org/eclipse/jdt/internal/core/ExternalFolderChange.java 27 Jun 2008 16:03:51 -0000 1.4 >+++ model/org/eclipse/jdt/internal/core/ExternalFolderChange.java 27 Jul 2011 11:24:11 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2008 IBM Corporation and others. >+ * Copyright (c) 2000, 2011 IBM Corporation 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 >@@ -7,6 +7,7 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >+ * Stephan Herrmann <stephan@cs.tu-berlin.de> - inconsistent initialization of classpath container backed by external class folder, see https://bugs.eclipse.org/320618 > *******************************************************************************/ > package org.eclipse.jdt.internal.core; > >@@ -42,7 +43,7 @@ > Iterator iterator = newFolders.iterator(); > while (iterator.hasNext()) { > Object folderPath = iterator.next(); >- if (oldFolders == null || !oldFolders.remove(folderPath)) { >+ if (oldFolders == null || !oldFolders.remove(folderPath) || foldersManager.removePendingFolder(folderPath)) { > try { > foldersManager.createLinkFolder((IPath) folderPath, refreshIfExistAlready, monitor); > } catch (CoreException e) { >Index: model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java,v >retrieving revision 1.18.2.3 >diff -u -r1.18.2.3 ExternalFoldersManager.java >--- model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java 3 May 2011 14:53:06 -0000 1.18.2.3 >+++ model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java 27 Jul 2011 11:24:13 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2010 IBM Corporation and others. >+ * Copyright (c) 2000, 2011 IBM Corporation 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 >@@ -7,6 +7,7 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >+ * Stephan Herrmann <stephan@cs.tu-berlin.de> - inconsistent initialization of classpath container backed by external class folder, see https://bugs.eclipse.org/320618 > *******************************************************************************/ > package org.eclipse.jdt.internal.core; > >@@ -20,6 +21,7 @@ > import java.util.HashSet; > import java.util.Iterator; > import java.util.Map; >+import java.util.Set; > import java.util.Vector; > > import org.eclipse.core.resources.IFolder; >@@ -36,6 +38,7 @@ > import org.eclipse.core.runtime.jobs.Job; > import org.eclipse.jdt.core.IClasspathEntry; > import org.eclipse.jdt.core.JavaCore; >+import org.eclipse.jdt.core.JavaModelException; > import org.eclipse.jdt.internal.core.util.Messages; > import org.eclipse.jdt.internal.core.util.Util; > >@@ -43,6 +46,7 @@ > private static final String EXTERNAL_PROJECT_NAME = ".org.eclipse.jdt.core.external.folders"; //$NON-NLS-1$ > private static final String LINKED_FOLDER_NAME = ".link"; //$NON-NLS-1$ > private Map folders; >+ private Set pendingFolders; // subset of keys of 'folders', for which linked folders haven't been created yet. > private int counter = 0; > /* Singleton instance */ > private static ExternalFoldersManager MANAGER = new ExternalFoldersManager(); >@@ -102,11 +106,11 @@ > return EXTERNAL_PROJECT_NAME.equals(resourcePath.segment(0)); > } > >- public IFolder addFolder(IPath externalFolderPath) { >- return addFolder(externalFolderPath, getExternalFoldersProject()); >+ public IFolder addFolder(IPath externalFolderPath, boolean scheduleForCreation) { >+ return addFolder(externalFolderPath, getExternalFoldersProject(), scheduleForCreation); > } > >- private IFolder addFolder(IPath externalFolderPath, IProject externalFoldersProject) { >+ private IFolder addFolder(IPath externalFolderPath, IProject externalFoldersProject, boolean scheduleForCreation) { > Map knownFolders = getFolders(); > Object existing = knownFolders.get(externalFolderPath); > if (existing != null) { >@@ -116,13 +120,35 @@ > do { > result = externalFoldersProject.getFolder(LINKED_FOLDER_NAME + this.counter++); > } while (result.exists()); >+ if (scheduleForCreation) { >+ if (this.pendingFolders == null) >+ this.pendingFolders = new HashSet(); >+ this.pendingFolders.add(externalFolderPath); >+ } > knownFolders.put(externalFolderPath, result); > return result; > } >+ >+ /** >+ * Try to remove the argument from the list of folders pending for creation. >+ * @param externalPath to link to >+ * @return true if the argument was found in the list of pending folders and could be removed from it. >+ */ >+ public boolean removePendingFolder(Object externalPath) { >+ if (this.pendingFolders == null) >+ return false; >+ return this.pendingFolders.remove(externalPath); >+ } > > public IFolder createLinkFolder(IPath externalFolderPath, boolean refreshIfExistAlready, IProgressMonitor monitor) throws CoreException { > IProject externalFoldersProject = createExternalFoldersProject(monitor); // run outside synchronized as this can create a resource >- IFolder result = addFolder(externalFolderPath, externalFoldersProject); >+ return createLinkFolder(externalFolderPath, refreshIfExistAlready, externalFoldersProject, monitor); >+ } >+ >+ private IFolder createLinkFolder(IPath externalFolderPath, boolean refreshIfExistAlready, >+ IProject externalFoldersProject, IProgressMonitor monitor) throws CoreException { >+ >+ IFolder result = addFolder(externalFolderPath, externalFoldersProject, false); > if (!result.exists()) > result.createLink(externalFolderPath, IResource.ALLOW_MISSING_LOCAL, monitor); > else if (refreshIfExistAlready) >@@ -130,13 +156,38 @@ > return result; > } > >+ public void createPendingFolders(IProgressMonitor monitor) throws JavaModelException{ >+ if (this.pendingFolders == null || this.pendingFolders.isEmpty()) return; >+ >+ IProject externalFoldersProject = null; >+ try { >+ externalFoldersProject = createExternalFoldersProject(monitor); >+ } >+ catch(CoreException e) { >+ throw new JavaModelException(e); >+ } >+ Iterator iterator = this.pendingFolders.iterator(); >+ while (iterator.hasNext()) { >+ Object folderPath = iterator.next(); >+ try { >+ createLinkFolder((IPath) folderPath, false, externalFoldersProject, monitor); >+ } catch (CoreException e) { >+ Util.log(e, "Error while creating a link for external folder :" + folderPath); //$NON-NLS-1$ >+ } >+ } >+ this.pendingFolders.clear(); >+ } >+ > public void cleanUp(IProgressMonitor monitor) throws CoreException { > ArrayList toDelete = getFoldersToCleanUp(monitor); > if (toDelete == null) > return; > for (Iterator iterator = toDelete.iterator(); iterator.hasNext();) { >- IFolder folder = (IFolder) iterator.next(); >+ Map.Entry entry = (Map.Entry) iterator.next(); >+ IFolder folder = (IFolder) entry.getValue(); > folder.delete(true, monitor); >+ IPath key = (IPath) entry.getKey(); >+ this.folders.remove(key); > } > IProject project = getExternalFoldersProject(); > if (project.isAccessible() && project.members().length == 1/*remaining member is .project*/) >@@ -158,11 +209,10 @@ > IPath path = (IPath) entry.getKey(); > if ((roots != null && !roots.containsKey(path)) > && (sourceAttachments != null && !sourceAttachments.containsKey(path))) { >- IFolder folder = (IFolder) entry.getValue(); >- if (folder != null) { >+ if (entry.getValue() != null) { > if (result == null) > result = new ArrayList(); >- result.add(folder); >+ result.add(entry); > } > } > } >@@ -173,7 +223,7 @@ > public IProject getExternalFoldersProject() { > return ResourcesPlugin.getWorkspace().getRoot().getProject(EXTERNAL_PROJECT_NAME); > } >- private IProject createExternalFoldersProject(IProgressMonitor monitor) throws CoreException { >+ public IProject createExternalFoldersProject(IProgressMonitor monitor) throws CoreException { > IProject project = getExternalFoldersProject(); > if (!project.isAccessible()) { > if (!project.exists()) { >Index: model/org/eclipse/jdt/internal/core/JavaProject.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaProject.java,v >retrieving revision 1.433 >diff -u -r1.433 JavaProject.java >--- model/org/eclipse/jdt/internal/core/JavaProject.java 27 May 2010 10:10:34 -0000 1.433 >+++ model/org/eclipse/jdt/internal/core/JavaProject.java 27 Jul 2011 11:24:16 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2010 IBM Corporation and others. >+ * Copyright (c) 2000, 2011 IBM Corporation 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 >@@ -7,6 +7,7 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >+ * Stephan Herrmann <stephan@cs.tu-berlin.de> - inconsistent initialization of classpath container backed by external class folder, see https://bugs.eclipse.org/320618 > *******************************************************************************/ > package org.eclipse.jdt.internal.core; > >@@ -2736,7 +2737,7 @@ > } > } > if (resolvedEntry.getEntryKind() == IClasspathEntry.CPE_LIBRARY && ExternalFoldersManager.isExternalFolderPath(resolvedPath)) { >- externalFoldersManager.addFolder(resolvedPath); // no-op if not an external folder or if already registered >+ externalFoldersManager.addFolder(resolvedPath, true/*scheduleForCreation*/); // no-op if not an external folder or if already registered > } > } > >#P org.eclipse.jdt.core.tests.model >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/plugin.xml,v >retrieving revision 1.34 >diff -u -r1.34 plugin.xml >--- plugin.xml 28 Apr 2009 17:46:14 -0000 1.34 >+++ plugin.xml 27 Jul 2011 11:24:19 -0000 >@@ -1,6 +1,6 @@ > <?xml version="1.0" encoding="UTF-8"?> > <?eclipse version="3.0"?> <!-- >- Copyright (c) 2002, 2009 IBM Corporation and others. >+ Copyright (c) 2002, 2011 IBM Corporation 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 >@@ -47,6 +47,12 @@ > class="org.eclipse.jdt.core.tests.model.ContainerInitializer"/> > </extension> > >+ <extension point = "org.eclipse.jdt.core.classpathContainerInitializer"> >+ <classpathContainerInitializer >+ id="org.eclipse.jdt.core.tests.model.TEST_EXTERNAL_LIB_CONTAINER" >+ class="org.eclipse.jdt.core.tests.extensions.TestExternalLibContainerInitializer"/> >+ </extension> >+ > <!-- Extra Java-like file extensions --> > <extension point="org.eclipse.core.contenttype.contentTypes"> > <file-association >Index: src/org/eclipse/jdt/core/tests/extensions/TestExternalLibContainerInitializer.java >=================================================================== >RCS file: src/org/eclipse/jdt/core/tests/extensions/TestExternalLibContainerInitializer.java >diff -N src/org/eclipse/jdt/core/tests/extensions/TestExternalLibContainerInitializer.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/jdt/core/tests/extensions/TestExternalLibContainerInitializer.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,56 @@ >+/******************************************************************************* >+ * Copyright (c) 2011 Stephan Herrmann. >+ * 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 >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Stephan Herrmann <stephan@cs.tu-berlin.de> - inconsistent initialization of classpath container backed by external class folder, see https://bugs.eclipse.org/320618 >+ *******************************************************************************/ >+package org.eclipse.jdt.core.tests.extensions; >+ >+import org.eclipse.core.resources.ResourcesPlugin; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.jdt.core.ClasspathContainerInitializer; >+import org.eclipse.jdt.core.IClasspathContainer; >+import org.eclipse.jdt.core.IClasspathEntry; >+import org.eclipse.jdt.core.IJavaProject; >+import org.eclipse.jdt.core.JavaCore; >+ >+public class TestExternalLibContainerInitializer extends ClasspathContainerInitializer { >+ >+ IClasspathEntry[] entries; >+ >+ public void initialize(final IPath containerName, IJavaProject project) >+ throws CoreException { >+ IPath ws = ResourcesPlugin.getWorkspace().getRoot().getLocation(); >+ final IPath containerPath = ws.append("../TestContainer/"); >+ IClasspathContainer container = new IClasspathContainer() { >+ >+ public IPath getPath() { >+ return containerName; >+ } >+ >+ public int getKind() { >+ return IClasspathContainer.K_APPLICATION; >+ } >+ >+ public String getDescription() { >+ return "Test Container"; >+ } >+ >+ public IClasspathEntry[] getClasspathEntries() { >+ if (TestExternalLibContainerInitializer.this.entries == null) { >+ TestExternalLibContainerInitializer.this.entries = new IClasspathEntry[] { >+ JavaCore.newLibraryEntry(containerPath, null, null) >+ }; >+ } >+ return TestExternalLibContainerInitializer.this.entries; >+ } >+ }; >+ JavaCore.setClasspathContainer(containerName, new IJavaProject[]{ project}, new IClasspathContainer[] { container }, null); >+ } >+ >+} >Index: src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java,v >retrieving revision 1.104 >diff -u -r1.104 JavaProjectTests.java >--- src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java 28 Apr 2009 17:46:09 -0000 1.104 >+++ src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java 27 Jul 2011 11:24:25 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2009 IBM Corporation and others. >+ * Copyright (c) 2000, 2011 IBM Corporation 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 >@@ -7,6 +7,7 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >+ * Stephan Herrmann <stephan@cs.tu-berlin.de> - inconsistent initialization of classpath container backed by external class folder, see https://bugs.eclipse.org/320618 > *******************************************************************************/ > package org.eclipse.jdt.core.tests.model; > >@@ -35,6 +36,9 @@ > public JavaProjectTests(String name) { > super(name); > } >+static { >+// TESTS_NAMES = new String[] { "testAddExternalLibFolder6" }; >+} > public static Test suite() { > TestSuite suite = (TestSuite) buildModelTestSuite(JavaProjectTests.class); > >@@ -170,6 +174,71 @@ > } > > /* >+ * Ensures that a type from a classpath container pointing to an external folder can be resolved >+ * Bug 320618 - inconsistent initialization of classpath container backed by external class folder >+ */ >+public void testAddExternalLibFolder6() throws CoreException, IOException { >+ IWorkspace workspace = null; >+ try { >+ simulateExitRestart(); >+ >+ // create a class folder outside the testing workspace: >+ createExternalFolder("TestContainer/p"); >+ workspace = ResourcesPlugin.getWorkspace(); >+ File workspaceLocation = new File(workspace.getRoot().getLocation().toOSString()); >+ File classFileSrc = new File(workspaceLocation, "JavaProjectLibTests/lib/p/Y.class"); >+ File classFileDst = new File(workspaceLocation.getParentFile().getCanonicalFile(), "TestContainer/p/Y.class"); // canonicalize the external path as this is not done on case sensitive platforms when creating a new lib entry >+ copy(classFileSrc, classFileDst); >+ >+ // setup a project depending on the classpath container: >+ IJavaProject javaProject = setUpJavaProject("ExternalContainer"); >+ IProject p = javaProject.getProject(); >+ >+ // build should find no errors: >+ p.build(IncrementalProjectBuilder.FULL_BUILD, null); >+ IMarker[] markers = p.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE); >+ for (int i=0; i<markers.length; i++) >+ System.out.println("unexpected marker: "+markers[i].getType()+": "+markers[i].getAttribute(IMarker.MESSAGE)); >+ assertEquals("Unexpected markers", markers.length, 0); >+ >+ } finally { >+ deleteExternalResource("TestContainer"); >+ deleteProject("ExternalContainer"); >+ } >+ workspace.save(true, null); >+ // second go most be unaffected by previously used external links: >+ // (tests ExternalFoldersManager.cleanUp()) >+ try { >+ // *don't* reset: simulateExitRestart(); >+ >+ // from hereon same as before: >+ >+ // create a class folder outside the testing workspace: >+ createExternalFolder("TestContainer/p"); >+ workspace = ResourcesPlugin.getWorkspace(); >+ File workspaceLocation = new File(workspace.getRoot().getLocation().toOSString()); >+ File classFileSrc = new File(workspaceLocation, "JavaProjectLibTests/lib/p/Y.class"); >+ File classFileDst = new File(workspaceLocation.getParentFile().getCanonicalFile(), "TestContainer/p/Y.class"); // canonicalize the external path as this is not done on case sensitive platforms when creating a new lib entry >+ copy(classFileSrc, classFileDst); >+ >+ // setup a project depending on the classpath container: >+ IJavaProject javaProject = setUpJavaProject("ExternalContainer"); >+ IProject p = javaProject.getProject(); >+ >+ // build should find no errors: >+ p.build(IncrementalProjectBuilder.FULL_BUILD, null); >+ IMarker[] markers = p.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE); >+ for (int i=0; i<markers.length; i++) >+ System.out.println("unexpected marker: "+markers[i].getType()+": "+markers[i].getAttribute(IMarker.MESSAGE)); >+ assertEquals("Unexpected markers", markers.length, 0); >+ >+ } finally { >+ deleteExternalResource("TestContainer"); >+ deleteProject("ExternalContainer"); >+ } >+} >+ >+/* > * Ensures that adding a library entry for an existing empty external ZIP archive updates the model > */ > public void testAddZIPArchive1() throws Exception { >Index: workspace/ExternalContainer/.classpath >=================================================================== >RCS file: workspace/ExternalContainer/.classpath >diff -N workspace/ExternalContainer/.classpath >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ workspace/ExternalContainer/.classpath 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,7 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<classpath> >+ <classpathentry kind="src" path="src"/> >+ <classpathentry kind="con" path="org.eclipse.jdt.core.tests.model.TEST_EXTERNAL_LIB_CONTAINER"/> >+ <classpathentry kind="var" path="JCL_LIB"/> >+ <classpathentry kind="output" path="bin"/> >+</classpath> >Index: workspace/ExternalContainer/.project >=================================================================== >RCS file: workspace/ExternalContainer/.project >diff -N workspace/ExternalContainer/.project >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ workspace/ExternalContainer/.project 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,17 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<projectDescription> >+ <name>ExternalContainer</name> >+ <comment></comment> >+ <projects> >+ </projects> >+ <buildSpec> >+ <buildCommand> >+ <name>org.eclipse.jdt.core.javabuilder</name> >+ <arguments> >+ </arguments> >+ </buildCommand> >+ </buildSpec> >+ <natures> >+ <nature>org.eclipse.jdt.core.javanature</nature> >+ </natures> >+</projectDescription> >Index: workspace/ExternalContainer/src/p2/X.java >=================================================================== >RCS file: workspace/ExternalContainer/src/p2/X.java >diff -N workspace/ExternalContainer/src/p2/X.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ workspace/ExternalContainer/src/p2/X.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+package p2; >+import p.Y; >+public class X { >+ Y y; >+} >\ No newline at end of file
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 343509
:
199193
| 200438