if it does work then the stack looks different

instead of PlatformActivator is being loaded and that triggers our plugin
itis suddenly the other way around:


Daemon Thread [Start Level: Equinox Container:
9d6cebde-df6c-44ee-a043-cdd013a5b6ef] (Suspended (breakpoint at line 34 in
PlatformActivator))
owns: Object  (id=71)
PlatformActivator.start(BundleContext) line: 34 * <<< So here really in the
core.runtime activator*
BundleContextImpl$3.run() line: 842
BundleContextImpl$3.run() line: 1
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not
available
BundleContextImpl.startActivator(BundleActivator) line: 834
BundleContextImpl.start() line: 791
EquinoxBundle.startWorker0() line: 1013
EquinoxBundle$EquinoxModule.startWorker() line: 365
EquinoxBundle$EquinoxModule(Module).doStart(Module$StartOptions...) line:
598
EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line: 462
SecureAction.start(Module, Module$StartOptions...) line: 493
EclipseLazyStarter.postFindLocalClass(String, Class<?>, ClasspathManager)
line: 117
ClasspathManager.findLocalClass(String) line: 570
EquinoxClassLoader(ModuleClassLoader).findLocalClass(String) line: 330
BundleLoader.findLocalClass(String) line: 396
BundleLoader.findClassInternal(String, boolean) line: 474
BundleLoader.findClass(String, boolean) line: 423
BundleLoader.findClass(String) line: 415
BundleContextImpl.loadBundleActivator() line: 824  *<< This is now
our tweaks.Activator *
BundleContextImpl.start() line: 778
EquinoxBundle.startWorker0() line: 1013
EquinoxBundle$EquinoxModule.startWorker() line: 365
EquinoxBundle$EquinoxModule(Module).doStart(Module$StartOptions...) line:
598
EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line: 462
SecureAction.start(Module, Module$StartOptions...) line: 493
EclipseLazyStarter.postFindLocalClass(String, Class<?>, ClasspathManager)
line: 117
ClasspathManager.findLocalClass(String) line: 570
EquinoxClassLoader(ModuleClassLoader).findLocalClass(String) line: 330
BundleLoader.findLocalClass(String) line: 396
BundleLoader.findClassInternal(String, boolean) line: 474
BundleLoader.findClass(String, boolean) line: 423
BundleLoader.findClass(String) line: 415
EquinoxClassLoader(ModuleClassLoader).loadClass(String, boolean) line: 155
EquinoxClassLoader(ClassLoader).loadClass(String) line: not available
XmlHandler.startElement(String, String, KXml2SAXParser$Attributes) line:
260
KXml2SAXParser.parseXML(KXml2SAXHandler) line: 76
BundleComponentActivator.loadDescriptor(URL) line: 429
BundleComponentActivator.initialize(String) line: 315
BundleComponentActivator.<init>(ScrLogger, ComponentRegistry,
ComponentActorThread, BundleContext, ScrConfiguration) line: 270
Activator.loadComponents(Bundle) line: 379
Activator.access$200(Activator, Bundle) line: 49
Activator$ScrExtension.start() line: 263
Activator(AbstractExtender).createExtension(Bundle) line: 196
Activator(AbstractExtender).modifiedBundle(Bundle, BundleEvent, Bundle)
line: 169
Activator(AbstractExtender).addingBundle(Bundle, BundleEvent) line: 139
Activator(AbstractExtender).addingBundle(Bundle, BundleEvent) line: 49
BundleTracker$Tracked.customizerAdding(Bundle, BundleEvent) line: 475
BundleTracker$Tracked.customizerAdding(Object, Object) line: 1
BundleTracker$Tracked(AbstractTracked<S,T,R>).trackAdding(S, R) line: 256
BundleTracker$Tracked(AbstractTracked<S,T,R>).track(S, R) line: 229
BundleTracker$Tracked.bundleChanged(BundleEvent) line: 450
BundleContextImpl.dispatchEvent(Object, Object, int, Object) line: 973
EventManager.dispatchEvent(Set<Entry<K,V>>, EventDispatcher<K,V,E>, int, E)
line: 234
ListenerQueue<K,V,E>.dispatchEventSynchronous(int, E) line: 151
EquinoxEventPublisher.publishBundleEventPrivileged(BundleEvent) line: 234
EquinoxEventPublisher.publishBundleEvent(BundleEvent) line: 140
EquinoxEventPublisher.publishBundleEvent(int, Bundle, Bundle) line: 132
EquinoxContainerAdaptor.publishModuleEvent(ModuleContainerAdaptor$ModuleEvent,
Module, Module) line: 231
EquinoxBundle$EquinoxModule(Module).publishEvent(ModuleContainerAdaptor$ModuleEvent)
line: 493
EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line: 480
ModuleContainer$ContainerStartLevel$1.run() line: 1820
EquinoxContainerAdaptor$2$1.execute(Runnable) line: 150
ModuleContainer$ContainerStartLevel.incStartLevel(int, List<Module>) line:
1813
ModuleContainer$ContainerStartLevel.incStartLevel(int, List<Module>,
List<Module>) line: 1769
ModuleContainer$ContainerStartLevel.doContainerStartLevel(Module, int,
FrameworkListener...) line: 1735
ModuleContainer$ContainerStartLevel.dispatchEvent(Module,
FrameworkListener[], int, Integer) line: 1661
ModuleContainer$ContainerStartLevel.dispatchEvent(Object, Object, int,
Object) line: 1
EventManager.dispatchEvent(Set<Entry<K,V>>, EventDispatcher<K,V,E>, int, E)
line: 234
EventManager$EventThread<K,V,E>.run() line: 345


so it now comes from a totally different stack.

this: (not workign)

EquinoxBundle$EquinoxModule.startWorker() line: 365
EquinoxBundle$EquinoxModule(Module).doStart(Module$StartOptions...) line:
598
EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line: 462
ModuleContainer$ContainerStartLevel$1.run() line: 1820
EquinoxContainerAdaptor$2$1.execute(Runnable) line: 150
ModuleContainer$ContainerStartLevel.incStartLevel(int, List<Module>) line:
1813

compared to (working)


EquinoxBundle$EquinoxModule(Module).publishEvent(ModuleContainerAdaptor$ModuleEvent)
line: 493
EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line: 480
ModuleContainer$ContainerStartLevel$1.run() line: 1820
EquinoxContainerAdaptor$2$1.execute(Runnable) line: 150
ModuleContainer$ContainerStartLevel.incStartLevel(int, List<Module>) line:
1813



On Wed, 4 Dec 2019 at 16:14, Johan Compagner <[email protected]> wrote:

> ok it is busy doing that.. (loading that activator of core.runtime)
>
> see some inline comments:
>
>
> Daemon Thread [Start Level: Equinox Container:
> 2a210fff-de19-4244-8631-718f72829b73] (Suspended (breakpoint at line 229 in
> InternalPlatform))
> owns: Object  (id=86)
> InternalPlatform.getBundles(String, String) line: 229     <<<< *SO here
> it goes wrong InternalPlatform is already used*.
> InternalPlatform.getBundle(String) line: 224
> Platform.getBundle(String) line: 1410
> WorkbenchPlugin.start(BundleContext) line: 782
> BundleContextImpl$3.run() line: 842
> BundleContextImpl$3.run() line: 1
> AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not
> available
> BundleContextImpl.startActivator(BundleActivator) line: 834
> BundleContextImpl.start() line: 791
> EquinoxBundle.startWorker0() line: 1013
> EquinoxBundle$EquinoxModule.startWorker() line: 365
> EquinoxBundle$EquinoxModule(Module).doStart(Module$StartOptions...) line:
> 598
> EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line:
> 462
> SecureAction.start(Module, Module$StartOptions...) line: 493
> EclipseLazyStarter.postFindLocalClass(String, Class<?>, ClasspathManager)
> line: 117
> ClasspathManager.findLocalClass(String) line: 570
> EquinoxClassLoader(ModuleClassLoader).findLocalClass(String) line: 330
> BundleLoader.findLocalClass(String) line: 396
> BundleLoader.findClassInternal(String, boolean) line: 474
> BundleLoader.findClass(String, boolean) line: 423
> BundleLoader.findClass(String) line: 415
> BundleContextImpl.loadBundleActivator() line: 824 *<<<<< This is
> our com.servoy.eclipse.ui.tweaks.Activator which is our Weaver plugin for
> adjusting many things (like replacing icons of core eclipse)*
> BundleContextImpl.start() line: 778
> EquinoxBundle.startWorker0() line: 1013
> EquinoxBundle$EquinoxModule.startWorker() line: 365
> EquinoxBundle$EquinoxModule(Module).doStart(Module$StartOptions...) line:
> 598
> EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line:
> 462
> SecureAction.start(Module, Module$StartOptions...) line: 493
> EclipseLazyStarter.postFindLocalClass(String, Class<?>, ClasspathManager)
> line: 117
> ClasspathManager.findLocalClass(String) line: 570
> EquinoxClassLoader(ModuleClassLoader).findLocalClass(String) line: 330
> BundleLoader.findLocalClass(String) line: 396
> BundleLoader.findClassInternal(String, boolean) line: 474
> BundleLoader.findClass(String, boolean) line: 423
> BundleLoader.findClass(String) line: 415
> BundleContextImpl.loadBundleActivator() line: 824  <<<<* this is
> loading: org.eclipse.core.internal.runtime.PlatformActivator*
> BundleContextImpl.start() line: 778
> EquinoxBundle.startWorker0() line: 1013
> EquinoxBundle$EquinoxModule.startWorker() line: 365
> EquinoxBundle$EquinoxModule(Module).doStart(Module$StartOptions...) line:
> 598
> EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line:
> 462
> ModuleContainer$ContainerStartLevel$1.run() line: 1820
> EquinoxContainerAdaptor$2$1.execute(Runnable) line: 150
> ModuleContainer$ContainerStartLevel.incStartLevel(int, List<Module>) line:
> 1813
> ModuleContainer$ContainerStartLevel.incStartLevel(int, List<Module>,
> List<Module>) line: 1770
> ModuleContainer$ContainerStartLevel.doContainerStartLevel(Module, int,
> FrameworkListener...) line: 1735
> ModuleContainer$ContainerStartLevel.dispatchEvent(Module,
> FrameworkListener[], int, Integer) line: 1661
> ModuleContainer$ContainerStartLevel.dispatchEvent(Object, Object, int,
> Object) line: 1
> EventManager.dispatchEvent(Set<Entry<K,V>>, EventDispatcher<K,V,E>, int,
> E) line: 234
> EventManager$EventThread<K,V,E>.run() line: 345
>
> so for some reason when i don't do a clean the PlatformActivator results
> in our tweaks.Activator to be called and that results via via via that the
> core.runtime is hit again without the activator be able to do it.
> (so it seems to be cyclic here)
>
> Because after our tweaks.Activater a lot of stuff is also actived like
> Workbench stuff.
>
> Not sure what the actual loading order is when it works normally..
> will need to test this.
>
>
> On Wed, 4 Dec 2019 at 15:53, Johan Compagner <[email protected]> wrote:
>
>> yes that is the problem
>> start is not hit for me, it comes directly in getBundles()
>>
>> the thing is how is that possible? because InternalPlatform is in
>> org.eclipse.core.runtime
>> and that plugin has a Activator and  Bundle-ActivationPolicy: lazy (which
>> i think in the ui stands for "activate this plugin if one of its classes is
>> loaded"
>>
>> any good place where i can place a breakpoint?
>>
>>
>>
>> On Wed, 4 Dec 2019 at 14:57, Thomas Watson <[email protected]> wrote:
>>
>>> My guess is that org.eclipse.core.runtime isn't getting activated at all
>>> or is failing to activate resulting in a null fwkWiring.  Although I would
>>> have expected some other exception in the log about failing to activate
>>> the org.eclipse.core.runtime bundle.  If you are able to debug check that
>>> the org.eclipse.core.internal.runtime.InternalPlatform.start(BundleContext)
>>> method is even getting called.
>>>
>>> Tom
>>>
>>>
>>>
>>>
>>> ----- Original message -----
>>> From: Johan Compagner <[email protected]>
>>> Sent by: [email protected]
>>> To: P2 developer discussions <[email protected]>
>>> Cc:
>>> Subject: [EXTERNAL] Re: [p2-dev] anybody knows why an upgrade of our
>>> product (but not an eclipse upgrade) goes wrong like this?
>>> Date: Wed, Dec 4, 2019 7:36 AM
>>>
>>> there is no simple test i am afraid
>>> its really our install from a product version 2019.9 -> 2019.12
>>> (and i think even the latest version of our product of .9 because it
>>> seems that bit older 2019.9_rc -> .12 works)
>>>
>>> i checked the code
>>>
>>>   Collection<BundleCapability> matchingBundleCapabilities =
>>> fwkWiring.findProviders(ModuleContainer
>>>
>>> and it bombs out there
>>> so very like the fwkWiring is null
>>>
>>> that is assigned in the start() method
>>>
>>>  public void start(BundleContext runtimeContext) {
>>> this.context = runtimeContext;
>>> this.fwkWiring =
>>> runtimeContext.getBundle(Constants.SYSTEM_BUNDLE_LOCATION).adapt(FrameworkWiring.class);
>>>
>>> so it seems that somehow that returns null (i guess that start() method
>>> has to be called)
>>>
>>> i can try to debug it a bit.
>>>
>>>
>>> On Wed, 4 Dec 2019 at 13:23, Mickael Istria <[email protected]> wrote:
>>>
>>> Hi,
>>>
>>> In any case, a NPE is a bug. So please report it, with the simplest
>>> steps to reproduce you can figure out.
>>> _______________________________________________
>>> p2-dev mailing list
>>> [email protected]
>>> To change your delivery options, retrieve your password, or unsubscribe
>>> from this list, visit
>>> https://www.eclipse.org/mailman/listinfo/p2-dev
>>>
>>> _______________________________________________
>>> p2-dev mailing list
>>> [email protected]
>>> To change your delivery options, retrieve your password, or unsubscribe
>>> from this list, visit
>>> https://www.eclipse.org/mailman/listinfo/p2-dev
>>>
>>>
>>>
>>> _______________________________________________
>>> p2-dev mailing list
>>> [email protected]
>>> To change your delivery options, retrieve your password, or unsubscribe
>>> from this list, visit
>>> https://www.eclipse.org/mailman/listinfo/p2-dev
>>
>>
_______________________________________________
p2-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://www.eclipse.org/mailman/listinfo/p2-dev

Reply via email to