Bug 494254 - Validation for superBase declarations in aspectBindings
- error message fix
- consider *all* overridden methods
diff --git a/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/ui/OTPDEUIMessages.properties b/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/ui/OTPDEUIMessages.properties
index 307c28e..323a99a 100644
--- a/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/ui/OTPDEUIMessages.properties
+++ b/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/ui/OTPDEUIMessages.properties
@@ -15,7 +15,7 @@
Validation_NotAPackage_error="{0} is an enclosing class, please use ''$'' as the separator for inner class names"
Validation_MissingPackage_error=Missing package; cannot bind a team class in the default package
Validation_MissingBindingForBasePackage_error=Team ''{0}'' lacks a binding for base package ''{1}''
-Validation_MissingSuperBasePackageDecl_error=Team ''{0}'' lacks a superBase declaration for base class ''{1}''
+Validation_MissingSuperBasePackageDecl_error=Team ''{0}'' lacks a superBase declaration for a base class in package ''{1}''
Validation_PackageNotInSuperBase_error=Plug-in ''{0}'' does not provide package ''{1}''
Validation_UnnecessarySuperBase_warning=Unnecessary superBase declaration ''{0}''
diff --git a/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/validation/BundleValidation.java b/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/validation/BundleValidation.java
index 8ee7fb2..dcbd913 100644
--- a/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/validation/BundleValidation.java
+++ b/plugins/org.eclipse.objectteams.otdt.pde.ui/src/org/eclipse/objectteams/otdt/internal/pde/validation/BundleValidation.java
@@ -342,8 +342,7 @@
for (IMethodMappingBinding mappingBinding : ((ITypeBinding) binding).getResolvedMethodMappings()) {
for (IMethodBinding basemethod : mappingBinding.getBaseMethods()) {
// find overridden
- IMethodBinding overriddenMethod = Bindings.findOverriddenMethod(basemethod, true);
- if (overriddenMethod != null) {
+ for (IMethodBinding overriddenMethod : Bindings.findOverriddenMethods(basemethod, true, false)) {
// remember package of declaring class
String packageName = overriddenMethod.getDeclaringClass().getPackage().getName();
if (perTeamResult == null) {
diff --git a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java
index d554f67..6b4c02e 100644
--- a/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java
+++ b/testplugins/org.eclipse.objectteams.otdt.test.builder/src/org/eclipse/objectteams/otdt/test/builder/OTEquinoxBuilderTests.java
@@ -443,7 +443,7 @@
expectingNoProblemsFor(basePrj0.getPath());
expectingNoProblemsFor(basePrj1.getPath());
expectingOnlySpecificProblemsFor(aspPrj.getPath(), new Problem[] {
- new Problem("", "Team 'bug494254aspect.Team1' lacks a superBase declaration for base class 'p0'",
+ new Problem("", "Team 'bug494254aspect.Team1' lacks a superBase declaration for a base class in package 'p0'",
aspPrj.getPath().append(new Path("plugin.xml")),
-1, -1, -1, IMarker.SEVERITY_ERROR),
new Problem("", "Plug-in 'Bug494254base0' does not provide package 'p1'",