Sync with HEAD 2009.10.07 (complementary sync)
diff --git a/bundles/org.eclipse.core.resources/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.resources/META-INF/MANIFEST.MF
index f80c05b..add4ed6 100644
--- a/bundles/org.eclipse.core.resources/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.core.resources/META-INF/MANIFEST.MF
@@ -22,7 +22,7 @@
  org.eclipse.core.resources.refresh,
  org.eclipse.core.resources.team
 Require-Bundle: org.eclipse.ant.core;bundle-version="[3.1.0,4.0.0)";resolution:=optional,
- org.eclipse.core.expressions;bundle-version="[3.1.0,4.0.0)",
+ org.eclipse.core.expressions;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.filesystem;bundle-version="[1.1.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.core.resources/schema/natures.exsd b/bundles/org.eclipse.core.resources/schema/natures.exsd
index 4c242f9..42cf249 100644
--- a/bundles/org.eclipse.core.resources/schema/natures.exsd
+++ b/bundles/org.eclipse.core.resources/schema/natures.exsd
@@ -2,9 +2,9 @@
 <!-- Schema file written by PDE -->
 <schema targetNamespace="org.eclipse.core.resources" xmlns="http://www.w3.org/2001/XMLSchema">
 <annotation>
-      <appinfo>
+      <appInfo>
          <meta.schema plugin="org.eclipse.core.resources" id="natures" name="Project Natures"/>
-      </appinfo>
+      </appInfo>
       <documentation>
          The workspace supports the notion of project natures 
 (or &quot;natures&quot; for short&quot;).  A nature associates lifecycle 
@@ -72,6 +72,11 @@
    </annotation>
 
    <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
       <complexType>
          <sequence>
             <element ref="runtime"/>
@@ -102,9 +107,9 @@
                <documentation>
                   an optional name of the extension instance
                </documentation>
-               <appinfo>
+               <appInfo>
                   <meta.attribute translatable="true"/>
-               </appinfo>
+               </appInfo>
             </annotation>
          </attribute>
       </complexType>
@@ -120,9 +125,9 @@
 
    <element name="run">
       <annotation>
-         <appinfo>
+         <appInfo>
             <meta.element labelAttribute="name"/>
-         </appinfo>
+         </appInfo>
       </annotation>
       <complexType>
          <sequence>
@@ -134,9 +139,9 @@
                   the fully-qualified name of a class which implements 
 &lt;samp&gt;org.eclipse.core.resources.IProjectNature&lt;/samp&gt;
                </documentation>
-               <appinfo>
+               <appInfo>
                   <meta.attribute kind="java" basedOn="org.eclipse.core.resources.IProjectNature"/>
-               </appinfo>
+               </appInfo>
             </annotation>
          </attribute>
       </complexType>
@@ -144,9 +149,9 @@
 
    <element name="parameter">
       <annotation>
-         <appinfo>
+         <appInfo>
             <meta.element labelAttribute="name"/>
-         </appinfo>
+         </appInfo>
       </annotation>
       <complexType>
          <attribute name="name" type="string" use="required">
@@ -185,9 +190,9 @@
                <documentation>
                   the fully-qualified id of another nature extension that this nature extension requires.
                </documentation>
-               <appinfo>
+               <appInfo>
                   <meta.attribute kind="identifier" basedOn="org.eclipse.core.resources.natures/@id"/>
-               </appinfo>
+               </appInfo>
             </annotation>
          </attribute>
       </complexType>
@@ -200,9 +205,9 @@
                <documentation>
                   the fully-qualified id of an incremental project builder extension that this nature controls.
                </documentation>
-               <appinfo>
+               <appInfo>
                   <meta.attribute kind="identifier" basedOn="org.eclipse.core.resources.builders/@id"/>
-               </appinfo>
+               </appInfo>
             </annotation>
          </attribute>
       </complexType>
@@ -227,18 +232,18 @@
                <documentation>
                   the fully-qualified id of a content type associated to this nature.
                </documentation>
-               <appinfo>
-                  <meta.attribute kind="identifier" basedOn="org.eclipse.core.runtime.contentTypes/@id"/>
-               </appinfo>
+               <appInfo>
+                  <meta.attribute kind="identifier" basedOn="org.eclipse.core.contenttype.contentTypes/content-type/@id"/>
+               </appInfo>
             </annotation>
          </attribute>
       </complexType>
    </element>
 
    <annotation>
-      <appinfo>
+      <appInfo>
          <meta.section type="examples"/>
-      </appinfo>
+      </appInfo>
       <documentation>
          Following is an example of three nature configurations.  The
 waterNature and fireNature belong
@@ -285,9 +290,9 @@
    </annotation>
 
    <annotation>
-      <appinfo>
+      <appInfo>
          <meta.section type="apiInfo"/>
-      </appinfo>
+      </appInfo>
       <documentation>
          The value of the class attribute must represent an 
 implementor of 
@@ -301,11 +306,10 @@
    </annotation>
 
 
-
    <annotation>
-      <appinfo>
+      <appInfo>
          <meta.section type="implementation"/>
-      </appinfo>
+      </appInfo>
       <documentation>
          The platform itself does not have any predefined natures. 
 Particular product installs may include natures as required.
@@ -313,11 +317,11 @@
    </annotation>
 
    <annotation>
-      <appinfo>
+      <appInfo>
          <meta.section type="copyright"/>
-      </appinfo>
+      </appInfo>
       <documentation>
-         Copyright (c) 2002, 2005 IBM Corporation and others.&lt;br&gt;
+         Copyright (c) 2002, 2009 IBM Corporation and others.&lt;br&gt;
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 which 
 accompanies 
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/localstore/Bucket.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/localstore/Bucket.java
index 7c97aac..a604d3f 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/localstore/Bucket.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/localstore/Bucket.java
@@ -111,11 +111,11 @@
 		public final static int CONTINUE = 0;
 		// should stop looking at any states immediately
 		public final static int STOP = 1;
-		// should stop looking at states for files in this container (or any of its children)	
+		// should stop looking at states for files in this container (or any of its children)
 		public final static int RETURN = 2;
-
+	
 		/**
-		 * Called after the bucket has been visited (and saved). 
+		 * Called after the bucket has been visited (and saved).
 		 * @throws CoreException
 		 */
 		public void afterSaving(Bucket bucket) throws CoreException {
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/properties/PropertyManager2.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/properties/PropertyManager2.java
index 18548a9..5dc3a6b 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/properties/PropertyManager2.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/properties/PropertyManager2.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * Copyright (c) 2004, 2009 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
@@ -27,6 +27,9 @@
  * @see org.eclipse.core.internal.properties.IPropertyManager
  */
 public class PropertyManager2 implements IPropertyManager {
+	
+	private static final int MAX_VALUE_SIZE = 2 * 1024;
+
 	class PropertyCopyVisitor extends Bucket.Visitor {
 		private List changes = new ArrayList();
 		private IPath destination;
@@ -149,8 +152,8 @@
 		int flags = resource.getFlags(info);
 		resource.checkAccessible(flags);
 		// enforce the limit stated by the spec
-		if (value != null && value.length() > 2 * 1024) {
-			String message = NLS.bind(Messages.properties_valueTooLong, name.getQualifier(), name.getLocalName());
+		if (value != null && value.length() > MAX_VALUE_SIZE) {
+			String message = NLS.bind(Messages.properties_valueTooLong, new Object[] {name.getQualifier(), name.getLocalName(), new Integer(MAX_VALUE_SIZE).toString()});
 			throw new ResourceException(IResourceStatus.FAILED_WRITE_METADATA, target.getFullPath(), message, null);
 		}
 		if (name.getQualifier() == null) {
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/SaveManager.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/SaveManager.java
index 4901692..2a9aa22 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/SaveManager.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/SaveManager.java
@@ -985,7 +985,7 @@
 		public boolean isCanceled() {
 			return ignoreCancel ? false : super.isCanceled();
 		}
-	};
+	}
 
 	public IStatus save(int kind, Project project, IProgressMonitor monitor) throws CoreException {
 		return save(kind, false, project, monitor);
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/IResourceChangeEvent.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/IResourceChangeEvent.java
index aee9537..53f6bbd 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/IResourceChangeEvent.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/IResourceChangeEvent.java
@@ -22,12 +22,12 @@
  *    deletions and modifications to one or more resources expressed
  *    as a hierarchical resource delta. Event type is
  *    <code>PRE_BUILD</code>, and <code>getDelta</code> returns
- *    the hierarchical delta.  The resource delta is rooted at the 
- *    workspace root.  The <code>getBuildKind</code> method returns
+ *    the hierarchical delta rooted at the workspace root. 
+ *    The <code>getBuildKind</code> method returns
  *    the kind of build that is about to occur, and the <code>getSource</code>
  *    method returns the scope of the build (either the workspace or a single project).
  *    These events are broadcast to interested parties immediately 
- *    before each build operation.  If autobuilding is not enabled, these events still 
+ *    before each build operation. If autobuilding is not enabled, these events still 
  *    occur at times when autobuild would have occurred. The workspace is open 
  *    for change during notification of these events. The delta reported in this event 
  *    cycle is identical across all listeners registered for this type of event.
@@ -39,8 +39,8 @@
  *    deletions and modifications to one or more resources expressed
  *    as a hierarchical resource delta. Event type is
  *    <code>POST_BUILD</code>, and <code>getDelta</code> returns
- *    the hierarchical delta. The resource delta is rooted at the 
- *    workspace root.  The <code>getBuildKind</code> method returns
+ *    the hierarchical delta rooted at the workspace root.
+ *    The <code>getBuildKind</code> method returns
  *    the kind of build that occurred, and the <code>getSource</code>
  *    method returns the scope of the build (either the workspace or a single project).
  *    These events are broadcast to interested parties at the end of every build operation.
@@ -135,14 +135,13 @@
 	public static final int PRE_AUTO_BUILD = 8;
 
 	/**
-	 * Event type constant (bit mask) indicating an before-the-fact 
-	 * report of creations, deletions, and modifications
-	 * to one or more resources expressed as a hierarchical
-	 * resource delta as returned by <code>getDelta</code>.
+	 * Event type constant (bit mask) indicating a before-the-fact 
+	 * report of a build. The event contains a hierarchical resource delta
+	 * as returned by <code>getDelta</code>.
 	 * See class comments for further details.
 	 *
-	 * @see #getType()
-	 * @see #getResource()
+	 * @see #getBuildKind()
+	 * @see #getSource()
 	 * @since 3.0
 	 */
 	public static final int PRE_BUILD = 8;
@@ -155,13 +154,12 @@
 
 	/**
 	 * Event type constant (bit mask) indicating an after-the-fact 
-	 * report of creations, deletions, and modifications
-	 * to one or more resources expressed as a hierarchical
-	 * resource delta as returned by <code>getDelta</code>.
+	 * report of a build. The event contains a hierarchical resource delta
+	 * as returned by <code>getDelta</code>.
 	 * See class comments for further details.
 	 *
-	 * @see #getType()
-	 * @see #getResource()
+	 * @see #getBuildKind()
+	 * @see #getSource()
 	 * @since 3.0
 	 */
 	public static final int POST_BUILD = 16;