Hi Amal,

I think the adding of  activemq-all bundle may adding another version of
the library which contains javax.jms and it may cause this problem. Could
you please try to not to add activemq-all but only the required bundles or
remove the other library which contains javax.jms package and try this out.

Thanks
Shammi


On Tue, May 6, 2014 at 3:57 PM, Amal Gunatilake <am...@wso2.com> wrote:

> Hi Shammi/Hasitha,
>
> There is a version conflict with existing javax.jms bundles when starting
> the cache invalidation osgi bundle, which causes the casting problem. Any
> thoughts on this matter?
>
> Thank you  & Best regards,
>
> *Amal Gunatilake*
>  Software Engineer
> WSO2 Inc.; http://wso2.com
> lean.enterprise.middleware
>
>
> On Tue, May 6, 2014 at 1:22 PM, Shazni Nazeer <sha...@wso2.com> wrote:
>
>> Hi Amal,
>>
>> Yes now the cache.xml entries are correctly read. After replacing
>> activemq-core to activemq-all the debugging steps go below the
>> IniatlContext line, but as you have mentioned when session object is being
>> created the following exception is thrown. Therefore, still jms
>> initialization fails.
>>
>> [2014-05-06 13:13:58,409] ERROR
>> {org.wso2.carbon.caching.invalidator.jms.JMSGlobalCacheInvalidationImpl} -
>> Global cache invalidation: Error jms broker initialization
>> java.lang.ClassCastException:
>> org.apache.activemq.ActiveMQConnectionFactory cannot be cast to
>> javax.jms.TopicConnectionFactory
>>     at
>> org.wso2.carbon.caching.invalidator.jms.JMSGlobalCacheInvalidationImpl.initJMSBroker(JMSGlobalCacheInvalidationImpl.java:112)
>>     at
>> org.wso2.carbon.caching.invalidator.jms.JMSGlobalCacheInvalidationImpl.init(JMSGlobalCacheInvalidationImpl.java:96)
>>     at
>> org.wso2.carbon.caching.invalidator.jms.JMSGlobalCacheInvalidationImpl.invalidateCache(JMSGlobalCacheInvalidationImpl.java:131)
>>     at
>> org.wso2.carbon.registry.core.caching.CachingHandler.removeFromCache(CachingHandler.java:255)
>>     at
>> org.wso2.carbon.registry.core.caching.CachingHandler.clearAncestry(CachingHandler.java:211)
>>     at
>> org.wso2.carbon.registry.core.caching.CachingHandler.clearAncestry(CachingHandler.java:232)
>>     at
>> org.wso2.carbon.registry.core.caching.CachingHandler.clearAncestry(CachingHandler.java:232)
>>     at
>> org.wso2.carbon.registry.core.caching.CachingHandler.clearCache(CachingHandler.java:207)
>>     at
>> org.wso2.carbon.registry.core.caching.CachingHandler.clearCache(CachingHandler.java:91)
>>     at
>> org.wso2.carbon.registry.core.caching.CachingHandler.put(CachingHandler.java:280)
>>     at
>> org.wso2.carbon.registry.core.jdbc.handlers.HandlerManager.put(HandlerManager.java:2503)
>>     at
>> org.wso2.carbon.registry.core.jdbc.handlers.HandlerLifecycleManager.put(HandlerLifecycleManager.java:993)
>>     at
>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.put(EmbeddedRegistry.java:697)
>>     at
>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.put(CacheBackedRegistry.java:508)
>>     at
>> org.wso2.carbon.registry.core.session.UserRegistry.put(UserRegistry.java:680)
>>     at
>> org.wso2.carbon.theme.mgt.util.ThemeUtil.transferAllThemesToRegistry(ThemeUtil.java:122)
>>     at
>> org.wso2.carbon.theme.mgt.util.ThemeUtil.loadResourceThemes(ThemeUtil.java:175)
>>     at
>> org.wso2.carbon.theme.mgt.internal.TenantThemeMgtServiceComponent.activate(TenantThemeMgtServiceComponent.java:53)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:606)
>>     at
>> org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
>>     at
>> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
>>     at
>> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
>>     at
>> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
>>     at
>> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
>>     at
>> org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
>>     at
>> org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
>>     at
>> org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
>>     at
>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
>>     at
>> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
>>     at
>> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
>>     at
>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
>>     at
>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
>>     at
>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
>>     at
>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
>>     at
>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
>>     at
>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451)
>>     at
>> org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:517)
>>     at
>> org.wso2.carbon.core.init.CarbonServerManager.start(CarbonServerManager.java:219)
>>     at
>> org.wso2.carbon.core.internal.CarbonCoreServiceComponent.activate(CarbonCoreServiceComponent.java:77)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:606)
>>     at
>> org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
>>     at
>> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
>>     at
>> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
>>     at
>> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
>>     at
>> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
>>     at
>> org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
>>     at
>> org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
>>     at
>> org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
>>     at
>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
>>     at
>> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
>>     at
>> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
>>     at
>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
>>     at
>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
>>     at
>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
>>     at
>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
>>     at
>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
>>     at
>> org.eclipse.equinox.http.servlet.internal.Activator.registerHttpService(Activator.java:81)
>>     at
>> org.eclipse.equinox.http.servlet.internal.Activator.addProxyServlet(Activator.java:60)
>>     at
>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.init(ProxyServlet.java:40)
>>     at
>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.init(DelegationServlet.java:38)
>>     at
>> org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1279)
>>     at
>> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1192)
>>     at
>> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
>>     at
>> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5210)
>>     at
>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5493)
>>     at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>     at
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
>>     at
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
>>     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>     at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>     at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>     at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>     at java.lang.Thread.run(Thread.java:724)
>>
>>
>>
>>  Shazni Nazeer
>>
>> Senior Software Engineer
>>
>> Mob : +94 715 440 607
>> LinkedIn : http://lk.linkedin.com/in/shazninazeer
>> Blog : http://shazninazeer.blogspot.com
>>
>>
>> On Tue, May 6, 2014 at 11:17 AM, Amal Gunatilake <am...@wso2.com> wrote:
>>
>>> Hi Shazni,
>>>
>>> There was a problem with the cache.xml read and I fixed it. Somehow when
>>> starting the osgi bundle it's not picking the child elements and I did an
>>> alternative way to read the properties in cache.xml.
>>>
>>> At the initialization, the isCoordinator check is not necessary since
>>> this is already done by cache.xml. If the cache.xml is configured with
>>> global cache invalidation parameters, then the jms initialization will
>>> happen. The isCoordinator check will happen when publishing a cache
>>> invalidation message and when receiving a cache invalidation message.
>>>
>>> The JMS broker is not being initialized bcuz it is missing the
>>> ActiveMQInitialContextFactory class at the run-time; therefore you need to
>>> add the AqtiveMQ-All jar to the components/lib. That will solve the
>>> InitialContext problem, but then there is another issue which I'm currently
>>> looking at.
>>>
>>> There is a javax.jms class version miss match. At the line that it
>>> creates the session, the ActiveMQSession cannot be cast into
>>> javax.jms.Session because at the run-time there is a different jms jar is
>>> loading into the class-path as I figured. This is actually an exception but
>>> it's not captured to the carbon console, and instead result in restarting
>>> the osgi bundle. I located this when debugging the code.
>>>
>>> Even though the ActiveMQ-All jar has all the classes needed, it seems
>>> there is problem as "Type mismatch Can't assign
>>> org.apache.activemq.ActiveMQSession to javax.jms.Session". But this won't
>>> throw as an exception because the classes are already there but with
>>> different versions loaded somehow. Therefore this results in restarting the
>>> osgi bundle.
>>>
>>>  I'm looking into this matter and anyone got any thoughts on this would
>>> warmly welcome.
>>>
>>> Thank you  & Best regards,
>>>
>>> *Amal Gunatilake*
>>>  Software Engineer
>>> WSO2 Inc.; http://wso2.com
>>> lean.enterprise.middleware
>>>
>>>
>>> On Tue, May 6, 2014 at 10:24 AM, Shazni Nazeer <sha...@wso2.com> wrote:
>>>
>>>> Hi Amal,
>>>>
>>>> While testing the GREG after doing the change to use the Global cache
>>>> invalidation I noticed the following.
>>>>
>>>> At the time when cache.xml is parsed, it seems the child elements of
>>>> the cache.xml is never read. The code at that parsing location seems to be
>>>> incorrect.
>>>>
>>>> Further, at the initializing JMS, the debugging steps never go below
>>>> the line where InitalContext is created. Therefore the broker is not
>>>> getting initialized. The debugging steps strangely jumps back to init
>>>> method a many times.
>>>>
>>>> Further more, the coordination check at the initialization returns
>>>> false, but at the invalidateCache method it becomes true making a
>>>> NullPointerException for session object. IMO, the isCordinator check at the
>>>> initialization is not needed. WDYT???
>>>>
>>>> Shazni Nazeer
>>>>
>>>> Senior Software Engineer
>>>>
>>>> Mob : +94 715 440 607
>>>> LinkedIn : http://lk.linkedin.com/in/shazninazeer
>>>> Blog : http://shazninazeer.blogspot.com
>>>>
>>>>
>>>> On Tue, Apr 29, 2014 at 4:55 PM, Amal Gunatilake <am...@wso2.com>wrote:
>>>>
>>>>> The updates are available @
>>>>> https://github.com/amalhub/carbon4-kernel/commit/10734eb2ded9afaee57dd96f8cd5665f0638d8c3
>>>>>
>>>>>
>>>>> Thank you  & Best regards,
>>>>>
>>>>> *Amal Gunatilake*
>>>>>  Software Engineer
>>>>> WSO2 Inc.; http://wso2.com
>>>>> lean.enterprise.middleware
>>>>>
>>>>>
>


-- 
Best Regards,

*  Shammi Jayasinghe*
Associate Tech Lead
WSO2, Inc.; http://wso2.com,
mobile: +94 71 4493085
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to