You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ma...@apache.org on 2014/03/19 14:21:52 UTC
svn commit: r1579223 - in
/felix/sandbox/pderop/dependencymanager-prototype/dm: src/dm/ src/dm/impl/
src/dm/impl/index/ test/test/
Author: marrs
Date: Wed Mar 19 13:21:51 2014
New Revision: 1579223
URL: http://svn.apache.org/r1579223
Log:
Changes after a code review. I also reviewed all (default) Findbugs warnings.
Modified:
felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/FilterIndex.java
felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ComponentAdminImpl.java
felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/EventImpl.java
felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ResourceEventImpl.java
felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/index/AspectFilterIndex.java
felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/index/BundleContextInterceptor.java
felix/sandbox/pderop/dependencymanager-prototype/dm/test/test/SerialExecutorTest.java
felix/sandbox/pderop/dependencymanager-prototype/dm/test/test/ServiceRaceTest.java
Modified: felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/FilterIndex.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/FilterIndex.java?rev=1579223&r1=1579222&r2=1579223&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/FilterIndex.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/FilterIndex.java Wed Mar 19 13:21:51 2014
@@ -36,7 +36,7 @@ public interface FilterIndex {
public void close();
/** Determines if the combination of class and filter is applicable for this filter index. */
public boolean isApplicable(String clazz, String filter);
- /** Returns all service references that match the specified class and filter. */
+ /** Returns all service references that match the specified class and filter. Never returns null. */
public List /* <ServiceReference> */ getAllServiceReferences(String clazz, String filter);
/** Invoked whenever a service event occurs. */
public void serviceChanged(ServiceEvent event);
Modified: felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ComponentAdminImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ComponentAdminImpl.java?rev=1579223&r1=1579222&r2=1579223&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ComponentAdminImpl.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ComponentAdminImpl.java Wed Mar 19 13:21:51 2014
@@ -40,7 +40,7 @@ public class ComponentAdminImpl implemen
@Override
public List<ComponentDeclaration> getComponents(Bundle bundle) {
- return getComponents(bundle);
+ return getComponents(bundle, -1);
}
private List<ComponentDeclaration> getComponents(Bundle bundle, long componentId) {
Modified: felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/EventImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/EventImpl.java?rev=1579223&r1=1579222&r2=1579223&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/EventImpl.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/EventImpl.java Wed Mar 19 13:21:51 2014
@@ -23,7 +23,9 @@ public class EventImpl implements Event,
@Override
public boolean equals(Object obj) {
- if (obj instanceof EventImpl) {
+ // an instanceof check here is not "strong" enough with subclasses overriding the
+ // equals: we need to be sure that a.equals(b) == b.equals(a) at all times
+ if (obj != null && obj.getClass().equals(EventImpl.class)) {
return ((EventImpl) obj).m_id == m_id;
}
return false;
Modified: felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ResourceEventImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ResourceEventImpl.java?rev=1579223&r1=1579222&r2=1579223&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ResourceEventImpl.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/ResourceEventImpl.java Wed Mar 19 13:21:51 2014
@@ -29,19 +29,13 @@ public class ResourceEventImpl extends E
if (match) {
Dictionary<?,?> d1 = getResourceProperties();
Dictionary<?,?> d2 = r2.getResourceProperties();
-
- if (d1 == null && d2 == null) {
- return match;
- }
- if (d1 == null && d2 != null) {
- return false;
+ if (d1 == null) {
+ return d2 == null ? match : false;
}
-
- if (d1 != null && d2 == null) {
- return false;
+ else {
+ return d1.equals(d2);
}
- return d1.equals(d2);
}
}
return false;
Modified: felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/index/AspectFilterIndex.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/index/AspectFilterIndex.java?rev=1579223&r1=1579222&r2=1579223&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/index/AspectFilterIndex.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/index/AspectFilterIndex.java Wed Mar 19 13:21:51 2014
@@ -224,7 +224,7 @@ public class AspectFilterIndex extends A
listeners.remove(listener);
}
// cleanup
- if (listeners.isEmpty()) {
+ if (listeners != null && listeners.isEmpty()) {
rankingToListenersMap.remove(Integer.valueOf(data.ranking));
}
if (rankingToListenersMap.isEmpty()) {
Modified: felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/index/BundleContextInterceptor.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/index/BundleContextInterceptor.java?rev=1579223&r1=1579222&r2=1579223&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/index/BundleContextInterceptor.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/dm/src/dm/impl/index/BundleContextInterceptor.java Wed Mar 19 13:21:51 2014
@@ -110,7 +110,7 @@ public class BundleContextInterceptor ex
m_logger.log(Logger.LOG_DEBUG, "Indexed filter exceeds lookup time treshold (" + duration + "ms.): " + clazz + " " + filter);
}
}
- if (result == null || result.size() == 0) {
+ if (result.size() == 0) {
return null;
}
return (ServiceReference[]) result.toArray(new ServiceReference[result.size()]);
Modified: felix/sandbox/pderop/dependencymanager-prototype/dm/test/test/SerialExecutorTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/dm/test/test/SerialExecutorTest.java?rev=1579223&r1=1579222&r2=1579223&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/dm/test/test/SerialExecutorTest.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/dm/test/test/SerialExecutorTest.java Wed Mar 19 13:21:51 2014
@@ -47,13 +47,14 @@ public class SerialExecutorTest extends
System.out.println("Performed " + TESTS + " tests in " + (now - timeStamp) + " ms.");
timeStamp = now;
}
-
catch (Throwable t) {
t.printStackTrace();
Assert.fail("Test failed: " + t.getMessage());
}
finally {
- shutdown(threadPool);
+ if (threadPool != null) {
+ shutdown(threadPool);
+ }
}
}
Modified: felix/sandbox/pderop/dependencymanager-prototype/dm/test/test/ServiceRaceTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/dm/test/test/ServiceRaceTest.java?rev=1579223&r1=1579222&r2=1579223&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/dm/test/test/ServiceRaceTest.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/dm/test/test/ServiceRaceTest.java Wed Mar 19 13:21:51 2014
@@ -183,7 +183,7 @@ public class ServiceRaceTest extends Tes
public class Client {
final Ensure m_step;
- volatile int m_dependencies;
+ int m_dependencies;
volatile Dictionary m_conf;
public Client(Ensure step) {
@@ -200,14 +200,14 @@ public class ServiceRaceTest extends Tes
}
}
- void add() {
+ synchronized void add() {
m_step.step();
- m_dependencies ++;
+ m_dependencies++;
}
- void remove() {
+ synchronized void remove() {
m_step.step();
- m_dependencies --;
+ m_dependencies--;
}
void start() {
@@ -222,7 +222,7 @@ public class ServiceRaceTest extends Tes
m_step.step((DEPENDENCIES + 1) /* deps + conf */ + 1 /* start */ + 1 /* stop */ + 1 /* destroy */);
}
- int getDependencies() {
+ synchronized int getDependencies() {
return m_dependencies;
}