FELIX-3456 correct which EDU classes we are pulling in, and log info for EDU lock's IllegalStateException
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1382649 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/pom.xml b/scr/pom.xml
index c7cde4d..deab4ff 100644
--- a/scr/pom.xml
+++ b/scr/pom.xml
@@ -305,7 +305,7 @@
</DynamicImport-Package>
<Embed-Dependency>
kxml2;inline=org/kxml2/io/KXmlParser.class|org/xmlpull/v1/XmlPull**,
- concurrent;inline=EDU/oswego/cs/dl/util/concurrent/ReentrantLock.class|EDU/oswego/cs/dl/util/concurrent/Sync.class
+ concurrent;inline=EDU/oswego/cs/dl/util/concurrent/ReentrantWriterPreferenceReadWriteLock.class|EDU/oswego/cs/dl/util/concurrent/WriterPreferenceReadWriteLock*|EDU/oswego/cs/dl/util/concurrent/ReadWriteLock.class|EDU/oswego/cs/dl/util/concurrent/SynchronizedRef.class|EDU/oswego/cs/dl/util/concurrent/SynchronizedVariable.class|EDU/oswego/cs/dl/util/concurrent/Sync.class|EDU/oswego/cs/dl/util/concurrent/Executor.class
</Embed-Dependency>
</instructions>
</configuration>
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
index e11b75c..4c85027 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
@@ -219,15 +219,25 @@
}
catch ( IllegalMonitorStateException e )
{
- StringBuffer b = new StringBuffer( "Locking activity before IllegalMonitorStateException: \n" );
- for (Iterator i = lockingActivity.iterator(); i.hasNext();)
- {
- b.append( " " ).append( i.next() ).append( "\n" );
- }
- log( LogService.LOG_ERROR, b.toString(), null );
- dumpThreads();
+ logLockingInfo();
throw e;
}
+ catch ( IllegalStateException e ) //for EDU lock
+ {
+ logLockingInfo();
+ throw e;
+ }
+ }
+
+ private void logLockingInfo()
+ {
+ StringBuffer b = new StringBuffer( "Locking activity before IllegalMonitorStateException: \n" );
+ for (Iterator i = lockingActivity.iterator(); i.hasNext();)
+ {
+ b.append( " " ).append( i.next() ).append( "\n" );
+ }
+ log( LogService.LOG_ERROR, b.toString(), null );
+ dumpThreads();
}
final void obtainWriteLock( String source )