Bug 501364: [otdre] base class may be detected too late due to on-demand
scanning
diff --git a/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/AspectBindingRegistry.java b/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/AspectBindingRegistry.java
index b16873e..3fc8384 100644
--- a/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/AspectBindingRegistry.java
+++ b/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/AspectBindingRegistry.java
@@ -50,6 +50,7 @@
 import org.eclipse.objectteams.internal.osgi.weaving.AspectBinding.TeamBinding;
 import org.eclipse.objectteams.otequinox.Constants;
 import org.osgi.framework.Bundle;
+import org.osgi.framework.wiring.BundleWiring;
 
 /**
  * An instance of this class holds the information loaded from extensions
@@ -168,6 +169,17 @@
 			} catch (Throwable t) {
 				log(t, "Invalid aspectBinding extension");
 			}
+			if (packageAdmin != null && aspectBundle != null && !binding.hasScannedTeams) {
+				@SuppressWarnings("deprecation")
+				Bundle[] baseBundles = packageAdmin.getBundles(baseBundleId, null);
+				if (baseBundles == null || baseBundles.length == 0 || (baseBundles[0].getState() < Bundle.RESOLVED)) {
+					log(IStatus.ERROR, "base bundle "+baseBundleId+" is not resolved - weaving may be incomplete.");
+				} else {
+					BundleWiring baseBundleWiring = baseBundles[0].adapt(BundleWiring.class);
+					Collection<String> boundBases = binding.scanTeamClasses(aspectBundle, DelegatingTransformer.newTransformer(binding.weavingScheme, hook, baseBundleWiring));
+					addBoundBaseClasses(boundBases);
+				}
+			}
 		}
 		// second round to connect sub/super teams to aspect bindings:
 		for (AspectBinding binding : bindings) {
diff --git a/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/Util.java b/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/Util.java
index fc341c8..8778bf2 100644
--- a/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/Util.java
+++ b/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/Util.java
@@ -60,7 +60,8 @@
 		long now= System.nanoTime();
 		long delta= (now-startTime);// / getActiveCount();
 		long total= (profileTimes[kind.ordinal()]+= delta);
-		msg = msg.substring(msg.lastIndexOf('.')+1);
+		if (kind != ProfileKind.Scan)
+			msg = msg.substring(msg.lastIndexOf('.')+1);
 //		doLog(INFO, "Profile "+kind.name()+": "+m(delta)+"("+m(total)+"/"+m(now-systemStartTime)+") ["+msg+"]");
 		System.out.println("OT/Equinox Profile "+kind.name()+": "+m(delta)+"("+m(total)+"/"+m(now-systemStartTime)+") ["+msg+"]");;
 	}