[292694] MessageCategory is broken in the validation framework
diff --git a/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html b/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html
index 39e6a5d..a891f28 100644
--- a/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html
+++ b/features/org.eclipse.wst.common_core.feature.patch/buildnotes_org.eclipse.wst.common_core.feature.patch.html
@@ -24,5 +24,6 @@
 <p>Bug <a href='https://bugs.eclipse.org/290727'>290727</a>. ProjectResourceSetImpl throwing concurrent access errors</p>
 <p>Bug <a href='https://bugs.eclipse.org/291266'>291266</a>. Deleting java source folders should remove the corresponding artifacts from the .settings/org.eclipse.wst.common.component file</p>
 <p>Bug <a href='https://bugs.eclipse.org/292518'>292518</a>. Fix deadlock introduced by bug 290701</p>
+<p>Bug <a href='https://bugs.eclipse.org/292694'>292694</a>. MessageCategory is broken in the validation framework</p>
 </body>
 </html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.common_core.feature.patch/feature.properties b/features/org.eclipse.wst.common_core.feature.patch/feature.properties
index 0593d85..2a397d8 100644
--- a/features/org.eclipse.wst.common_core.feature.patch/feature.properties
+++ b/features/org.eclipse.wst.common_core.feature.patch/feature.properties
@@ -38,6 +38,7 @@
 Bug https://bugs.eclipse.org/290727 ProjectResourceSetImpl throwing concurrent access errors\n\
 Bug https://bugs.eclipse.org/291266 Deleting java source folders should remove the corresponding artifacts from the .settings/org.eclipse.wst.common.component file\n\
 Bug https://bugs.eclipse.org/292518 Fix deadlock introduced by bug 290701\n\
+Bug https://bugs.eclipse.org/292694 MessageCategory is broken in the validation framework\n\
 \n\
 # "copyright" property - text of the "Feature Update Copyright"
 copyright=\
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerGlobal.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerGlobal.java
index 5fcbaf3..344ed0f 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerGlobal.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValPrefManagerGlobal.java
@@ -173,6 +173,18 @@
 				while(des.hasNext())list.add(FilterGroup.create(des));
 				v2.setGroups(list);
 			}
+			
+			String settings = vp.get(PrefConstants.msgs, ""); //$NON-NLS-1$
+			if (settings.length() >0)
+			{
+				Map<String, MessageSeveritySetting.Severity> map = Msgs.deserialize(settings);
+				Map<String, MessageSeveritySetting> msg = base.getMessageSettings();
+			
+				for (Map.Entry<String, MessageSeveritySetting.Severity> me : map.entrySet()){
+					MessageSeveritySetting ms = msg.get(me.getKey());
+					if (ms != null)ms.setCurrent(me.getValue());
+				}	
+			}
 		}					
 		return base;
 	}
@@ -365,6 +377,13 @@
 				vp.put(PrefConstants.groups, ser.toString());
 			}
 		}
+		if (validator.getChangeCountMessages() > 0){
+			Collection<MessageSeveritySetting> msgs = validator.getMessageSettings().values();
+			if (msgs.size() > 0){
+				vp.put(PrefConstants.msgs, Msgs.serialize(msgs));
+			}
+		}
+		
 	}
 	
 	public void saveAsPrefs(Validator[] val) {
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorMutable.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorMutable.java
index d18b0c5..5ab29c5 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorMutable.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/internal/ValidatorMutable.java
@@ -215,6 +215,10 @@
 	public Map<String, MessageSeveritySetting> getMessageSettings() {
 		return _messageSettings;
 	}
+
+	public int getChangeCountMessages(){
+		return _changeCountMessages;
+	}
 	
 	public void bumpChangeCountMessages(){
 		_changeCountMessages++;