Osgi Bundle is showing old version | Community
Skip to main content
chetan001
New Participant
August 17, 2021
Solved

Osgi Bundle is showing old version

  • August 17, 2021
  • 5 replies
  • 1879 views

Hi Everyone.

 

I have installed osgi bundle with updated version. It is installed and in active state.

But in bundle location it is showing old version. How it can come with latest version ?

 

 

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by BimmiSo

Hi @chetan001 ,

 

Cause
OSGi configurations were bound to the OSGi component with a matching PID. When you uninstall an older version of a custom bundle but not the associated OSGi configurations, then install a newer version of the bundle. The configurations stay bound to the no longer existing bundle.

 

Resolution :
To avoid this issue, do not uninstall the older version of the OSGi bundle before installing a newer version. Install the newer code package with higher version number over the old one.

Note for later AEM versions

Newer implementations of OSGi Declarative Services do not bind configurations anymore when delivering them to a component. This is to reduce resource consumption and avoid race conditions and is in guidance with the specification. In general, configuration binding is considered legacy from the OSGi specification point of view. In AEM 6.3 and later versions, if you want to know whether your component got a configuration, you can go to the components tab, look at a component and see whether it has a PID.

 

Hope this helps!!!
Thanks

 

5 replies

arunpatidar
New Participant
August 18, 2021

Hi,

Can you check if you have any nodes under /system/sling/installer/jcr/pauseInstallation if yes then delete it and restart the Apache Sling JCR Installer bundle

 

if there are no node at above location, just simple restart Apache Sling JCR Installer bundle

 

Arun Patidar
joerghoh
Employee
August 18, 2021

The bundle location does not play any role. It''s left with the initial state when you do a "simple" update.

Important is only the explicit bundle version number.

Love_Sharma
New Participant
August 17, 2021

Could be the possibility, many times your package manager show a message "Different version seems to be installed" as shown below. Uninstalling the package from CRX manager and redeploy your code fix this problem.

BimmiSoAccepted solution
Employee
August 17, 2021

Hi @chetan001 ,

 

Cause
OSGi configurations were bound to the OSGi component with a matching PID. When you uninstall an older version of a custom bundle but not the associated OSGi configurations, then install a newer version of the bundle. The configurations stay bound to the no longer existing bundle.

 

Resolution :
To avoid this issue, do not uninstall the older version of the OSGi bundle before installing a newer version. Install the newer code package with higher version number over the old one.

Note for later AEM versions

Newer implementations of OSGi Declarative Services do not bind configurations anymore when delivering them to a component. This is to reduce resource consumption and avoid race conditions and is in guidance with the specification. In general, configuration binding is considered legacy from the OSGi specification point of view. In AEM 6.3 and later versions, if you want to know whether your component got a configuration, you can go to the components tab, look at a component and see whether it has a PID.

 

Hope this helps!!!
Thanks

 

diksha_mishra
New Participant
August 17, 2021

@chetan001 this usually happens when you uninstall an older version of a custom bundle but not the associated OSGi configurations, then install a newer version of the bundle. The configurations stay bound to the no longer existing bundle.

To avoid this issue, do not uninstall the older version of the OSGi bundle before installing a newer version.  Install the newer code package with higher version number over the old one.

if you want to know whether your component got a configuration, you can go to the components tab, look at a component and see whether it has a PID.