diff --git a/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/.classpath b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/.classpath
new file mode 100644
index 0000000..751c8f2
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/.cvsignore b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/.cvsignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/.project b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/.project
new file mode 100644
index 0000000..27dce31
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.jst.jsf.metadataprocessingtests2</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/META-INF/MANIFEST.MF b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..3c0a5a9
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Metadataprocessingtests2 Plug-in
+Bundle-SymbolicName: org.eclipse.jst.jsf.metadataprocessingtests2;singleton:=true
+Bundle-Version: 0.5.0.qualifier
+Bundle-Activator: org.eclipse.jst.jsf.metadataprocessingtests2.Activator
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.jst.jsf.contentmodel.annotations,
+ org.eclipse.jst.jsf.metadataprocessors,
+ org.eclipse.jst.jsf.metadata.tests
+Eclipse-LazyStart: true
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/build.properties b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/build.properties
new file mode 100644
index 0000000..e9863e2
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/metadata/jsf_metadataprocessing2.xml b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/metadata/jsf_metadataprocessing2.xml
new file mode 100644
index 0000000..ecbbd4b
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/metadata/jsf_metadataprocessing2.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar-annotation 
+	xmlns="http://org.eclipse.jsf.core/grammarAnnotationSchema"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+>
+
+  <cm-element name="MyTag">
+  	<cm-attribute name="MyDualTypeAttr">
+  	  	<property name="attribute-value-runtime-type">
+  			<value>org.eclipse.jst.jsf.metadata.tests.NoImplType</value>
+  		</property>
+  		<property name="valid-values">
+  			<value>BFirstVal</value>
+  			<value>BSecondVal</value>
+  			<value>BThirdVal</value>
+  			<value>BFourthVal</value>
+  		</property>
+  	</cm-attribute>
+  </cm-element>
+</grammar-annotation>
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/plugin.xml b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/plugin.xml
new file mode 100644
index 0000000..5f0dedf
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/plugin.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+   <extension
+         point="org.eclipse.jst.jsf.contentmodel.annotations.annotationFiles">
+      <annotationFile
+            location="/metadata/jsf_metadataprocessing2.xml"
+            uri=" http://org.eclipse.jsf/metadataprocessing"/>
+   </extension>
+   <extension
+         point="org.eclipse.jst.jsf.metadataprocessors.AttributeValueRuntimeTypes">
+      <attributeValueRuntimeType id="NoImplType"/>
+   </extension>
+   <extension
+         point="org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledFeatures">
+      <MetaDataEnabledFeature
+            class="org.eclipse.jst.jsf.metadataprocessingtests2.NoImplPossibleVals"
+            typeid="org.eclipse.jst.jsf.metadata.tests.NoImplType"/>
+   </extension>
+
+</plugin>
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/src/org/eclipse/jst/jsf/metadataprocessingtests2/Activator.java b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/src/org/eclipse/jst/jsf/metadataprocessingtests2/Activator.java
new file mode 100644
index 0000000..558981f
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/src/org/eclipse/jst/jsf/metadataprocessingtests2/Activator.java
@@ -0,0 +1,45 @@
+package org.eclipse.jst.jsf.metadataprocessingtests2;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The main plugin class to be used in the desktop.
+ */
+public class Activator extends Plugin {
+
+	//The shared instance.
+	private static Activator plugin;
+	
+	/**
+	 * The constructor.
+	 */
+	public Activator() {
+		plugin = this;
+	}
+
+	/**
+	 * This method is called upon plug-in activation
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+	}
+
+	/**
+	 * This method is called when the plug-in is stopped
+	 */
+	public void stop(BundleContext context) throws Exception {
+		super.stop(context);
+		plugin = null;
+	}
+
+	/**
+	 * Returns the shared instance.
+	 *
+	 * @return the shared instance.
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/src/org/eclipse/jst/jsf/metadataprocessingtests2/NoImplPossibleVals.java b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/src/org/eclipse/jst/jsf/metadataprocessingtests2/NoImplPossibleVals.java
new file mode 100644
index 0000000..9f54375
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.metadataprocessingtests2/src/org/eclipse/jst/jsf/metadataprocessingtests2/NoImplPossibleVals.java
@@ -0,0 +1,32 @@
+package org.eclipse.jst.jsf.metadataprocessingtests2;
+
+
+import java.util.List;
+
+import org.eclipse.jst.jsf.metadataprocessors.internal.provisional.AbstractMetaDataEnabledFeature;
+import org.eclipse.jst.jsf.metadataprocessors.internal.provisional.AbstractRootTypeDescriptor;
+import org.eclipse.jst.jsf.metadataprocessors.internal.provisional.IMetaDataEnabledFeature;
+import org.eclipse.jst.jsf.metadataprocessors.internal.provisional.features.IPossibleValues;
+import org.eclipse.wtp.jsf.contentmodel.annotation.internal.provisional.CMAnnotationHelper;
+
+public class NoImplPossibleVals extends AbstractMetaDataEnabledFeature implements
+		IPossibleValues {
+
+	public NoImplPossibleVals() {
+		super();
+	}
+
+	public List getPossibleValues() {
+		return getPossibleVals();
+	}
+
+	private List getPossibleVals() {
+		return CMAnnotationHelper.getCMAttributePropertyValues(getCMAnnotationContext().getBundleId(), getCMAnnotationContext().getUri(),
+				getCMAnnotationContext().getElementName(), getCMAnnotationContext().getAttributeName(),
+				IPossibleValues.POSSIBLE_VALUES_PROP_NAME);
+
+	}
+	
+	
+
+}
