[ 
https://issues.apache.org/jira/browse/FELIX-3645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13449234#comment-13449234
 ] 

David Jencks commented on FELIX-3645:
-------------------------------------

The functionality you describe seems reasonable but I can't find support for it 
in the DS 1.0 or 1.2 specs.  All I see is 

ds 1.0 112.3.1 If the method is not found or the found method is not declared 
protected or public, SCR must log an error message with the Log Service, if 
present, and ignore the method.

ds 1.2 112.3.2  If no suitable method is located, SCR must log an error message 
with the Log Service, if present, and there will be no bind, updated, or unbind 
notification.

Assuming that the cts is correct I would think we could detect this situation 
in initBindMethods and put the component into a state where we wouldn't try to 
do anything with it?
                
> SCR could not obtain lock in 5000 ms
> ------------------------------------
>
>                 Key: FELIX-3645
>                 URL: https://issues.apache.org/jira/browse/FELIX-3645
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR)
>         Environment: linux fc16, bipro, Java(TM) SE Runtime Environment 
> (build 1.6.0_32-b05)
>            Reporter: Pierre De Rop
>            Assignee: David Jencks
>         Attachments: 
> TEST-org.apache.felix.scr.integration.ComponentConcurrencyTest.xml
>
>
> I finally made an integration test and committed it in the trunk.
> This test sounds to reproduce the problem described in 
> http://www.mail-archive.com/[email protected]/msg26360.html.
> the test contains the following files:
> src/test/resources/integration_test_component_concurrency.xml
> src/test/java/org/apache/felix/scr/integration/ComponentConcurrencyTest.java
> src/test/java/org/apache/felix/scr/integration/components/concurrency/A.java
> src/test/java/org/apache/felix/scr/integration/components/concurrency/B.java
> src/test/java/org/apache/felix/scr/integration/components/concurrency/C.java
> src/test/java/org/apache/felix/scr/integration/components/concurrency/AFactory.java
> src/test/java/org/apache/felix/scr/integration/components/concurrency/CFactory.java
> I also slightly modified 
> src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java
> in order to use the apache log service, and also to declare the new package 
> from org/apache/felix/scr/integration/components/concurrency.
> The test does the following:
> A optionally depends on B (dynamic=true, cardinality=0..N)
> B depends on C
> A is a factory component and is created by the AFactory class, in an infinite 
> loop and in a dedicated thread.
> C is also a factory component and is created/disposed for ever, by the 
> CFactory class.
> the integration test uses the log service in order to track logged errors, 
> and runs 30 seconds.
> If after 30 seconds, some errors are detected, then the test fail.
> It seems that we have many exceptions when the test fail, which I did not 
> reproduced so far. (see many IllegalMonitorState Exceptions).
> The initial exception discussed from the post in the @dev list is also 
> reproduced.
> For example, I attached to this post my 
> target/failsafe-reports/TEST-org.apache.felix.scr.integration.ComponentConcurrencyTest.xml,
>  when the problem takes place.
> Please take a look starting at line 951, as well as at the corresponding 
> dumpstack at line 713, and also the "Locking activity before 
> IllegalMonitorStateException" log, line 887.
> Hope this will help.
> /pierre

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to