diff --git a/features/org.eclipse.uml2.common-feature/feature.xml b/features/org.eclipse.uml2.common-feature/feature.xml
index 5c6ad83..117ca32 100644
--- a/features/org.eclipse.uml2.common-feature/feature.xml
+++ b/features/org.eclipse.uml2.common-feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.uml2.common"
       label="%feature.label"
-      version="2.4.0.qualifier"
+      version="2.5.0.qualifier"
       provider-name="%feature.provider-name"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.license"
@@ -13,7 +13,7 @@
    </description>
 
    <copyright url="http://www.eclipse.org/legal/epl-v10.html">
-      Copyright (c) 2003, 2017 IBM Corporation, Embarcadero Technologies, CEA, and others.
+      Copyright (c) 2003, 2018 IBM Corporation, Embarcadero Technologies, CEA, 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
diff --git a/plugins/org.eclipse.uml2.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.uml2.common/META-INF/MANIFEST.MF
index b819b23..2df8e05 100644
--- a/plugins/org.eclipse.uml2.common/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.uml2.common/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.uml2.common; singleton:=true
-Bundle-Version: 2.4.0.qualifier
+Bundle-Version: 2.5.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.uml2.common/about.properties b/plugins/org.eclipse.uml2.common/about.properties
index 3d79026..d3092d1 100644
--- a/plugins/org.eclipse.uml2.common/about.properties
+++ b/plugins/org.eclipse.uml2.common/about.properties
@@ -1,4 +1,4 @@
-# Copyright (c) 2006, 2017 IBM Corporation, Embarcadero Technologies, CEA, and others.
+# Copyright (c) 2006, 2018 IBM Corporation, Embarcadero Technologies, CEA, 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,7 +7,7 @@
 # Contributors: 
 #   IBM - initial API and implementation
 #   Kenn Hussey (Embarcadero Technologies) - 219804, 204200
-#   Kenn Hussey - 323181, 526568
+#   Kenn Hussey - 323181, 526568, 540812
 #   Kenn Hussey (CEA) - 424568, 459723
 #   Christian W. Damus (CEA) - 227616
 #
@@ -25,5 +25,5 @@
 Version: {featureVersion}\n\
 Build id: {0}\n\
 \n\
-(c) Copyright Eclipse contributors and others 2003, 2017.  All rights reserved.\n\
+(c) Copyright Eclipse contributors and others 2003, 2018.  All rights reserved.\n\
 Visit http://www.eclipse.org/uml2
diff --git a/plugins/org.eclipse.uml2.common/schema/cache_adapter_override.exsd b/plugins/org.eclipse.uml2.common/schema/cache_adapter_override.exsd
index 0db0ea6..fd092f1 100644
--- a/plugins/org.eclipse.uml2.common/schema/cache_adapter_override.exsd
+++ b/plugins/org.eclipse.uml2.common/schema/cache_adapter_override.exsd
@@ -67,7 +67,7 @@
          <meta.section type="since"/>
       </appinfo>
       <documentation>
-         2.4.0
+         2.5.0
       </documentation>
    </annotation>
 
diff --git a/plugins/org.eclipse.uml2.common/src/org/eclipse/uml2/common/util/CacheAdapter.java b/plugins/org.eclipse.uml2.common/src/org/eclipse/uml2/common/util/CacheAdapter.java
index 6df259f..4acde0e 100644
--- a/plugins/org.eclipse.uml2.common/src/org/eclipse/uml2/common/util/CacheAdapter.java
+++ b/plugins/org.eclipse.uml2.common/src/org/eclipse/uml2/common/util/CacheAdapter.java
@@ -8,7 +8,7 @@
  * Contributors:
  *   IBM - initial API and implementation
  *   Kenn Hussey (Embarcadero Technologies) - 204200, 220065
- *   Kenn Hussey - 335125
+ *   Kenn Hussey - 335125, 540812
  *   Christian W. Damus (CEA) - 389632, 332057
  *   Kenn Hussey (CEA) - 418466, 455572
  *   Eike Stepper - 540812
@@ -138,11 +138,11 @@
 	private static final class OverrideRegistryReader
 			extends RegistryReader {
 
-		private static final String PPID = "cache_adapter_override";
+		private static final String PPID = "cache_adapter_override"; //$NON-NLS-1$
 
-		private static final String TAG_CACHE_ADAPTER = "cacheAdapter";
+		private static final String TAG_CACHE_ADAPTER = "cacheAdapter"; //$NON-NLS-1$
 
-		private static final String ATT_CLASS = "class";
+		private static final String ATT_CLASS = "class"; //$NON-NLS-1$
 
 		private CacheAdapter cacheAdapter;
 
@@ -160,15 +160,19 @@
 				boolean add) {
 			if (element.getName().equals(TAG_CACHE_ADAPTER)) {
 				String className = element.getAttribute(ATT_CLASS);
+
 				if (className == null) {
 					logMissingAttribute(element, ATT_CLASS);
 				} else if (add) {
+
 					if (cacheAdapter != null) {
+
 						if (!cacheAdapter.getClass().getName()
 							.equals(className)) {
+
 							CommonPlugin.INSTANCE.log(
-								"Ignored '" + className + "' in favour of '"
-									+ cacheAdapter.getClass().getName() + "'");
+								"Ignored '" + className + "' in favour of '" //$NON-NLS-1$ //$NON-NLS-2$
+									+ cacheAdapter.getClass().getName() + "'"); //$NON-NLS-1$
 						}
 
 						return false;
@@ -181,7 +185,7 @@
 						throw new WrappedException(e);
 					}
 				}
-				
+
 				return true;
 			}
 
@@ -213,8 +217,8 @@
 	}
 
 	private static CacheAdapter createCacheAdapter() {
-		CacheAdapter cacheAdapter = UML2Util
-			.loadClassFromSystemProperty("org.eclipse.uml2.common.util.CacheAdapter.INSTANCE"); //$NON-NLS-1$
+		CacheAdapter cacheAdapter = UML2Util.loadClassFromSystemProperty(
+			"org.eclipse.uml2.common.util.CacheAdapter.INSTANCE"); //$NON-NLS-1$
 
 		if (cacheAdapter != null) {
 			return cacheAdapter;
@@ -399,10 +403,11 @@
 		}
 	}
 
-	protected ECrossReferenceAdapter provideCrossReferenceAdapter(EObject eObject) {
+	protected ECrossReferenceAdapter provideCrossReferenceAdapter(
+			EObject eObject) {
 		return getCrossReferenceAdapter(eObject);
 	}
-	
+
 	@Override
 	public Collection<EStructuralFeature.Setting> getNonNavigableInverseReferences(
 			EObject eObject) {
diff --git a/plugins/org.eclipse.uml2.common/src/org/eclipse/uml2/common/util/UML2Util.java b/plugins/org.eclipse.uml2.common/src/org/eclipse/uml2/common/util/UML2Util.java
index 0179b83..3339941 100644
--- a/plugins/org.eclipse.uml2.common/src/org/eclipse/uml2/common/util/UML2Util.java
+++ b/plugins/org.eclipse.uml2.common/src/org/eclipse/uml2/common/util/UML2Util.java
@@ -11,7 +11,7 @@
  *   Keith Campbell (IBM) - 343783
  *   Kenn Hussey (CEA) - 316165, 322715, 212765, 421756, 424568, 443662
  *   Christian W. Damus (CEA) - 405065
-#   Eike Stepper - 540812
+ *   Eike Stepper - 540812
  *
  */
 package org.eclipse.uml2.common.util;
diff --git a/tests/org.eclipse.uml2.uml.tests/pom.xml b/tests/org.eclipse.uml2.uml.tests/pom.xml
index 52d7418..1589e62 100644
--- a/tests/org.eclipse.uml2.uml.tests/pom.xml
+++ b/tests/org.eclipse.uml2.uml.tests/pom.xml
@@ -47,8 +47,8 @@
               <testClass>org.eclipse.uml2.uml.tests.UMLAllTests</testClass>
               <useUIHarness>true</useUIHarness>
               <useUIThread>true</useUIThread>
-              <argLine>-ea</argLine>
-              <!--argLine>-ea -XstartOnFirstThread</argLine-->
+              <!--argLine>-ea</argLine-->
+              <argLine>-ea -XstartOnFirstThread</argLine>
               <reportsDirectory>${project.build.directory}/surefire-reports/plugin</reportsDirectory>
             </configuration>
           </execution>
