[256003]  Account for reserved converters in converter validation.  Patch from Nan.
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkConvert.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkConvert.java
index 3a037df..42ee878 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkConvert.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkConvert.java
@@ -32,6 +32,7 @@
 import org.eclipse.jpt.utility.internal.SimpleAssociation;
 import org.eclipse.jpt.utility.internal.StringTools;
 import org.eclipse.jpt.utility.internal.iterables.ArrayIterable;
+import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
 import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -306,6 +307,12 @@
 			}
 		}
 		
+		for (Iterator<String> names = this.reservedNames(); names.hasNext();){
+			if (converter.equals(names.next())) {
+				return;
+			}
+		}
+		
 		messages.add(
 				DefaultEclipseLinkJpaValidationMessages.buildMessage(
 						IMessage.HIGH_SEVERITY,
@@ -317,6 +324,10 @@
 		);	
 	}
 	
+	public Iterator<String> reservedNames() {
+		return new ArrayIterator<String>(EclipseLinkConvert.RESERVED_CONVERTER_NAMES);
+	}
+	
 	public TextRange getValidationTextRange(CompilationUnit astRoot) {
 		return this.convertAnnotation.getTextRange(astRoot);
 	}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmEclipseLinkConvert.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmEclipseLinkConvert.java
index 0c85bc7..48ebfe1 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmEclipseLinkConvert.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmEclipseLinkConvert.java
@@ -13,8 +13,6 @@
 import java.util.List;
 import org.eclipse.jdt.core.IPackageFragment;
 import org.eclipse.jdt.core.IType;
-import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
-import org.eclipse.text.edits.ReplaceEdit;
 import org.eclipse.jpt.core.context.Converter;
 import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
 import org.eclipse.jpt.core.context.orm.OrmConverter;
@@ -31,6 +29,9 @@
 import org.eclipse.jpt.utility.internal.Association;
 import org.eclipse.jpt.utility.internal.SimpleAssociation;
 import org.eclipse.jpt.utility.internal.iterables.ArrayIterable;
+import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
+import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
+import org.eclipse.text.edits.ReplaceEdit;
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 import org.eclipse.wst.validation.internal.provisional.core.IReporter;
 
@@ -284,6 +285,12 @@
 			}
 		}
 		
+		for (Iterator<String> names = this.reservedNames(); names.hasNext();){
+			if (converter.equals(names.next())) {
+				return;
+			}
+		}
+
 		messages.add(
 				DefaultEclipseLinkJpaValidationMessages.buildMessage(
 						IMessage.HIGH_SEVERITY,
@@ -295,6 +302,10 @@
 		);	
 	}
 
+	public Iterator<String> reservedNames() {
+		return new ArrayIterator<String>(EclipseLinkConvert.RESERVED_CONVERTER_NAMES);
+	}
+	
 	public TextRange getValidationTextRange() {
 		return this.getXmlConvertibleMapping().getConvertTextRange();
 	}