You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Rudi Vankeirsbilck (Jira)" <ji...@apache.org> on 2020/06/04 07:11:00 UTC

[jira] [Commented] (FELIX-6280) Custom persistence manager no longer working under jdk14

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

Rudi Vankeirsbilck commented on FELIX-6280:
-------------------------------------------

I have found the "real" source of the problem. There was actually one component that was holding up the startup of the felix server. I thought the startup of the bundles/components was done in a multi-threaded way but it looks like this is not the case. This single component was trying to obtain a connection to a machine with an almost indefinite connection timeout and due to firewall settings that I had not set correctly for my new jdk14 machine, that connection was not established but did not fail either for some reason. As soon as I fixed this, the startup went just fine. Even when I reverted back to version 1.9.16 of the configadmin bundle.

Please feel free to close this issue.

> Custom persistence manager no longer working under jdk14
> --------------------------------------------------------
>
>                 Key: FELIX-6280
>                 URL: https://issues.apache.org/jira/browse/FELIX-6280
>             Project: Felix
>          Issue Type: Bug
>          Components: Configuration Admin
>         Environment: jdk14
>            Reporter: Rudi Vankeirsbilck
>            Priority: Major
>         Attachments: ConfigurationPersistenceManager.java, Screenshot 2020-05-28 at 16.56.16.png
>
>
> The project that I am working on is currently still using jdk8 but we are planning to move to jdk14 and is using a custom org.apache.felix.cm.PersistenceManager that stores the configuration information in a SQL database. I have attached the sources (see ConfigurationPersistenceManager.java)
> First thing I did was to upgrade to felix 6.0.3 (was using 5.6.1 before) and upgraded the sub projects that we use to the most recent version. We are using SCR 1.9.16.
> After the upgrade, the components did not really seem to startup correctly. I could narrow down some of the problems to one component that is not active and requires configuration information from my custom persistence manager. In the component overview it is marked as "no config". When I go edit the configuration, all of the values that are stored in the database are effectively there. Also when I start felix and attach a remote debugger to it, it invokes my custom persistence manager and it returns the configuration for the requested component. When I then save the component, my custom persistence manager is invoked again and does not produce any errors but when I continue to trace in the debugger, I end up in org.apache.felix.cm.impl.UpdateThread#schedule(Runnable) that is adding an object to "updateTasks" LinkedList and subsequently invokes notifyAll() on it. This is happening time and time again, i.e. each time I save the configuration an element is added to updateTasks but the component but the thread that is intended to pickup the event is not responding (org.apache.felix.cm.impl.UpdateThread#run()) is never removing any elements from updateTasks. Also, the component whose configuration I updated is never getting its activate method invoked.
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)