[jira] [Work started] (FELIX-3325) Finding activate/deactivate/modified methods has numerous problems
[ https://issues.apache.org/jira/browse/FELIX-3325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Work on FELIX-3325 started by Felix Meschberger. Finding activate/deactivate/modified methods has numerous problems -- Key: FELIX-3325 URL: https://issues.apache.org/jira/browse/FELIX-3325 Project: Felix Issue Type: Bug Components: Declarative Services (SCR) Affects Versions: scr-1.6.0 Reporter: David Jencks Assignee: Felix Meschberger Attachments: FELIX-3325.diff I've identified at least 3 problems in the code finding appropriate activate/deactivate/modified methods on DS components. 1. BaseMethod.getMethod wraps SuitableMethodNotAccessibleException exceptions in InvocationTargetExceptions, which prevents callers from detecting the SuitableMethodNotAccessibleException and responding appropriately. 2. ActivateMethod.doFindMethod: if it gets to looking for an empty method, it will return null if there isn't one, even if there was a previous SuitableMethodNotAccessible detected. It should only return a non-null method. 3. ActivateMethod.getSingleParameterMethod will throw a SuitableMethodNotAccessibleException even if it finds an accessible suitable method after the non-accessible one. In addition, ReferenceMetadata.validate does not make the object read-only by setting m_validate. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (FELIX-3325) Finding activate/deactivate/modified methods has numerous problems
[ https://issues.apache.org/jira/browse/FELIX-3325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13195747#comment-13195747 ] Felix Meschberger commented on FELIX-3325: -- Thanks for providing the patch. ReferenceMetadata.validate right, not a big deal in reality, but good for code completeness. BaseMethod.getMethod Wow, yeah, the expected exception is eaten. ActivateMethod.doFindMethod right. going to apply this patch. Finding activate/deactivate/modified methods has numerous problems -- Key: FELIX-3325 URL: https://issues.apache.org/jira/browse/FELIX-3325 Project: Felix Issue Type: Bug Components: Declarative Services (SCR) Affects Versions: scr-1.6.0 Reporter: David Jencks Attachments: FELIX-3325.diff I've identified at least 3 problems in the code finding appropriate activate/deactivate/modified methods on DS components. 1. BaseMethod.getMethod wraps SuitableMethodNotAccessibleException exceptions in InvocationTargetExceptions, which prevents callers from detecting the SuitableMethodNotAccessibleException and responding appropriately. 2. ActivateMethod.doFindMethod: if it gets to looking for an empty method, it will return null if there isn't one, even if there was a previous SuitableMethodNotAccessible detected. It should only return a non-null method. 3. ActivateMethod.getSingleParameterMethod will throw a SuitableMethodNotAccessibleException even if it finds an accessible suitable method after the non-accessible one. In addition, ReferenceMetadata.validate does not make the object read-only by setting m_validate. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (FELIX-3325) Finding activate/deactivate/modified methods has numerous problems
[ https://issues.apache.org/jira/browse/FELIX-3325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Felix Meschberger reassigned FELIX-3325: Assignee: Felix Meschberger Finding activate/deactivate/modified methods has numerous problems -- Key: FELIX-3325 URL: https://issues.apache.org/jira/browse/FELIX-3325 Project: Felix Issue Type: Bug Components: Declarative Services (SCR) Affects Versions: scr-1.6.0 Reporter: David Jencks Assignee: Felix Meschberger Attachments: FELIX-3325.diff I've identified at least 3 problems in the code finding appropriate activate/deactivate/modified methods on DS components. 1. BaseMethod.getMethod wraps SuitableMethodNotAccessibleException exceptions in InvocationTargetExceptions, which prevents callers from detecting the SuitableMethodNotAccessibleException and responding appropriately. 2. ActivateMethod.doFindMethod: if it gets to looking for an empty method, it will return null if there isn't one, even if there was a previous SuitableMethodNotAccessible detected. It should only return a non-null method. 3. ActivateMethod.getSingleParameterMethod will throw a SuitableMethodNotAccessibleException even if it finds an accessible suitable method after the non-accessible one. In addition, ReferenceMetadata.validate does not make the object read-only by setting m_validate. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3325) Finding activate/deactivate/modified methods has numerous problems
[ https://issues.apache.org/jira/browse/FELIX-3325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Felix Meschberger resolved FELIX-3325. -- Resolution: Fixed Fix Version/s: scr-1.6.2 Applied your patch in Rev. 1237274 Finding activate/deactivate/modified methods has numerous problems -- Key: FELIX-3325 URL: https://issues.apache.org/jira/browse/FELIX-3325 Project: Felix Issue Type: Bug Components: Declarative Services (SCR) Affects Versions: scr-1.6.0 Reporter: David Jencks Assignee: Felix Meschberger Fix For: scr-1.6.2 Attachments: FELIX-3325.diff I've identified at least 3 problems in the code finding appropriate activate/deactivate/modified methods on DS components. 1. BaseMethod.getMethod wraps SuitableMethodNotAccessibleException exceptions in InvocationTargetExceptions, which prevents callers from detecting the SuitableMethodNotAccessibleException and responding appropriately. 2. ActivateMethod.doFindMethod: if it gets to looking for an empty method, it will return null if there isn't one, even if there was a previous SuitableMethodNotAccessible detected. It should only return a non-null method. 3. ActivateMethod.getSingleParameterMethod will throw a SuitableMethodNotAccessibleException even if it finds an accessible suitable method after the non-accessible one. In addition, ReferenceMetadata.validate does not make the object read-only by setting m_validate. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (FELIX-3288) NPE when component exposed as a service with servicefactory = true
[ https://issues.apache.org/jira/browse/FELIX-3288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13195920#comment-13195920 ] Jarek Gawor commented on FELIX-3288: Can someone please take a look at this? We are hitting this problem quite frequently. NPE when component exposed as a service with servicefactory = true -- Key: FELIX-3288 URL: https://issues.apache.org/jira/browse/FELIX-3288 Project: Felix Issue Type: Bug Components: Declarative Services (SCR) Affects Versions: scr-1.6.0 Reporter: Jarek Gawor Attachments: FELIX-3288.patch I have a component that is exposed as a service and is also configured with servicefactory = true. I see the following NPE when shutting the framework: java.lang.NullPointerException at org.apache.felix.scr.impl.manager.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:252) at org.apache.felix.scr.impl.manager.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:135) at org.apache.felix.scr.impl.manager.AbstractComponentManager$Satisfied.deactivate(AbstractComponentManager.java:1075) at org.apache.felix.scr.impl.manager.AbstractComponentManager.disposeInternal(AbstractComponentManager.java:357) at org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(AbstractComponentManager.java:196) at org.apache.felix.scr.impl.config.ConfiguredComponentHolder.disposeComponents(ConfiguredComponentHolder.java:299) at org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:319) at org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:340) at org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:207) Since the component is configured with servicefactory = true, ServiceFactoryComponentManager is used to manage the object. ServiceFactoryComponentManager overrides the createComponent() method from ImmediateComponentManager. ServiceFactoryComponentManager also intended (I think) to override the corresponding deleteComponent() method from ImmediateComponentManager. However, the signature of the deleteComponent() in ImmediateComponentManager has changed a bit so the override doesn't work anymore. So that's what I think is causing the problem in this case. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (FELIX-3288) NPE when component exposed as a service with servicefactory = true
[ https://issues.apache.org/jira/browse/FELIX-3288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13195921#comment-13195921 ] David Jencks commented on FELIX-3288: - The patch looks correct to me. Is there any chance of compiling with java 5 and using @Override to catch stuff like this? NPE when component exposed as a service with servicefactory = true -- Key: FELIX-3288 URL: https://issues.apache.org/jira/browse/FELIX-3288 Project: Felix Issue Type: Bug Components: Declarative Services (SCR) Affects Versions: scr-1.6.0 Reporter: Jarek Gawor Attachments: FELIX-3288.patch I have a component that is exposed as a service and is also configured with servicefactory = true. I see the following NPE when shutting the framework: java.lang.NullPointerException at org.apache.felix.scr.impl.manager.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:252) at org.apache.felix.scr.impl.manager.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:135) at org.apache.felix.scr.impl.manager.AbstractComponentManager$Satisfied.deactivate(AbstractComponentManager.java:1075) at org.apache.felix.scr.impl.manager.AbstractComponentManager.disposeInternal(AbstractComponentManager.java:357) at org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(AbstractComponentManager.java:196) at org.apache.felix.scr.impl.config.ConfiguredComponentHolder.disposeComponents(ConfiguredComponentHolder.java:299) at org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:319) at org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:340) at org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:207) Since the component is configured with servicefactory = true, ServiceFactoryComponentManager is used to manage the object. ServiceFactoryComponentManager overrides the createComponent() method from ImmediateComponentManager. ServiceFactoryComponentManager also intended (I think) to override the corresponding deleteComponent() method from ImmediateComponentManager. However, the signature of the deleteComponent() in ImmediateComponentManager has changed a bit so the override doesn't work anymore. So that's what I think is causing the problem in this case. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (FELIX-3288) NPE when component exposed as a service with servicefactory = true
[ https://issues.apache.org/jira/browse/FELIX-3288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Felix Meschberger reassigned FELIX-3288: Assignee: Felix Meschberger NPE when component exposed as a service with servicefactory = true -- Key: FELIX-3288 URL: https://issues.apache.org/jira/browse/FELIX-3288 Project: Felix Issue Type: Bug Components: Declarative Services (SCR) Affects Versions: scr-1.6.0 Reporter: Jarek Gawor Assignee: Felix Meschberger Fix For: scr-1.6.2 Attachments: FELIX-3288.patch I have a component that is exposed as a service and is also configured with servicefactory = true. I see the following NPE when shutting the framework: java.lang.NullPointerException at org.apache.felix.scr.impl.manager.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:252) at org.apache.felix.scr.impl.manager.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:135) at org.apache.felix.scr.impl.manager.AbstractComponentManager$Satisfied.deactivate(AbstractComponentManager.java:1075) at org.apache.felix.scr.impl.manager.AbstractComponentManager.disposeInternal(AbstractComponentManager.java:357) at org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(AbstractComponentManager.java:196) at org.apache.felix.scr.impl.config.ConfiguredComponentHolder.disposeComponents(ConfiguredComponentHolder.java:299) at org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:319) at org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:340) at org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:207) Since the component is configured with servicefactory = true, ServiceFactoryComponentManager is used to manage the object. ServiceFactoryComponentManager overrides the createComponent() method from ImmediateComponentManager. ServiceFactoryComponentManager also intended (I think) to override the corresponding deleteComponent() method from ImmediateComponentManager. However, the signature of the deleteComponent() in ImmediateComponentManager has changed a bit so the override doesn't work anymore. So that's what I think is causing the problem in this case. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (FELIX-3288) NPE when component exposed as a service with servicefactory = true
[ https://issues.apache.org/jira/browse/FELIX-3288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Felix Meschberger resolved FELIX-3288. -- Resolution: Fixed Fix Version/s: scr-1.6.2 Thanks for providing the patch. I have applied it in Rev. 1237548 NPE when component exposed as a service with servicefactory = true -- Key: FELIX-3288 URL: https://issues.apache.org/jira/browse/FELIX-3288 Project: Felix Issue Type: Bug Components: Declarative Services (SCR) Affects Versions: scr-1.6.0 Reporter: Jarek Gawor Assignee: Felix Meschberger Fix For: scr-1.6.2 Attachments: FELIX-3288.patch I have a component that is exposed as a service and is also configured with servicefactory = true. I see the following NPE when shutting the framework: java.lang.NullPointerException at org.apache.felix.scr.impl.manager.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:252) at org.apache.felix.scr.impl.manager.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:135) at org.apache.felix.scr.impl.manager.AbstractComponentManager$Satisfied.deactivate(AbstractComponentManager.java:1075) at org.apache.felix.scr.impl.manager.AbstractComponentManager.disposeInternal(AbstractComponentManager.java:357) at org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(AbstractComponentManager.java:196) at org.apache.felix.scr.impl.config.ConfiguredComponentHolder.disposeComponents(ConfiguredComponentHolder.java:299) at org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:319) at org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:340) at org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:207) Since the component is configured with servicefactory = true, ServiceFactoryComponentManager is used to manage the object. ServiceFactoryComponentManager overrides the createComponent() method from ImmediateComponentManager. ServiceFactoryComponentManager also intended (I think) to override the corresponding deleteComponent() method from ImmediateComponentManager. However, the signature of the deleteComponent() in ImmediateComponentManager has changed a bit so the override doesn't work anymore. So that's what I think is causing the problem in this case. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira