Re: [Dev] ClassNotFoundException on deserializing a custom message object in Hazelcast

2016-05-11 Thread Asitha Nanayakkara
Yes. Thanks

On Thu, May 12, 2016 at 10:53 AM, Kishanthan Thangarajah <
kishant...@wso2.com> wrote:

> Kalpa has already merged this. I hope you can continue the work with this
> fix.
>
> On Wed, May 11, 2016 at 1:43 PM, Asitha Nanayakkara 
> wrote:
>
>> I raised the question in Hazelcast Gitter community and they got back to
>> me saying to use the com.hazelcast.config.Config#setClassLoader(...) to set
>> the requeired class loader as the solution.
>>
>> Since the issue affects all the users of carbon Hzelcast module we have
>> to fix this in carbon Hazelcast module.
>>
>> @Kishanthan I've created a PR [1] with the suggested fix (by Hazelcast)
>> to add the carbon hazelcast module class loader as the class loader of
>> hazelcast bundle. Please review and merge.
>>
>> [1] https://github.com/wso2/carbon-kernel/pull/974
>>
>>
>> On Tue, May 10, 2016 at 5:13 PM, Asitha Nanayakkara 
>> wrote:
>>
>>> Hi All,
>>>
>>> We came across an issue with Hazelcast topics when passing custom
>>> message objects (Can occur for Maps and all the other data structures in
>>> Hazelcast) with C5 Hazelcast module. We have created an issue for this as
>>> well [1].
>>> Use case
>>>
>>> I'm working with Hazelcast reliable topics in an OSGi environment. I'm
>>> using a custom message object with Hazelcast topics ClusterNotification
>>> 
>>> .
>>>
>>> public class ClusterSubscriptionChangedListener implements 
>>> MessageListener {
>>>
>>> /**
>>>  * This method is triggered when a subscription is changed in clustered 
>>> environment.
>>>  *
>>>  * @param message contains the ClusterNotification
>>>  */
>>> @Override
>>> public void onMessage(Message message) {
>>>// message handling logic
>>> }
>>>  }
>>>
>>> I'm publishing/receiving messages to/from Hazelcast topics from another
>>> OSGi bundle.
>>> Issue
>>>
>>> I can publish messages to the topic successfully. But I don't receive
>>> the messages from the listener. This is because, when the Hazelcast topic
>>> ring buffer runners try to pick the serialized message and de-serialize, it
>>> throws a ClassNotFoundException. *And the exception is silently ignored*
>>> and the message never received.
>>> Root cause
>>>
>>> Class loader of the Hazelcast bundle cannot see the classes of my
>>> bundle. Therefore even though I can publish the message from my bundle,
>>> Within Hazelcast it can't de-serialize the ClusterNotification
>>> 
>>> object since the class loader of Hazelcast bundle cannot see the class.
>>> Solution, way forward?
>>>
>>>
>>>1. After having an offline discussion with Kishanthan we built the
>>>hazelcast bundle with *
>>>in the hazelcast pom.xml
>>>
>>>and we successfully received the messages (We didn't get the
>>>ClassNotFoundException). But we need a fix from Hazelcast.
>>>2. Another way Hazelcast has provided is to set the class loader for
>>>the HazelcastInstance. So Internally Hazelcast instance will use the
>>>provided class loader to deserialize the objects. If we provide our 
>>> bundle
>>>class loader it will properly deserialize the object without an issue.
>>>
>>>
>>> @Kishanthan I tried to set the class loader of the carbon-kernel
>>> hazelcast module to the hazelcast instance (when creating the hazelcast
>>> instance[2]) and added dynamic imports * property (to get the solution 2
>>> working from the carbon kernel hazelcast module itself). Still I'm having
>>> issues in loading the Andes classes thorough the carbon Hazelcast module
>>> class loader.
>>> [1] https://github.com/hazelcast/hazelcast/issues/8139
>>> [2]
>>> https://github.com/wso2/carbon-kernel/blob/hamming-release-poc/modules/carbon-hazelcast/component/src/main/java/org/wso2/carbon/hazelcast/internal/CarbonHazelcastComponent.java#L60
>>>
>>> Regards,
>>> Asitha
>>>
>>> --
>>> *Asitha Nanayakkara*
>>> Software Engineer
>>> WSO2, Inc. http://wso2.com/
>>> Mob: +94 77 853 0682
>>>
>>>
>>
>>
>> --
>> *Asitha Nanayakkara*
>> Software Engineer
>> WSO2, Inc. http://wso2.com/
>> Mob: +94 77 853 0682
>>
>>
>
>
> --
> *Kishanthan Thangarajah*
> Associate Technical Lead,
> Platform Technologies Team,
> WSO2, Inc.
> lean.enterprise.middleware
>
> Mobile - +94773426635
> Blog - *http://kishanthan.wordpress.com *
> Twitter - *http://twitter.com/kishanthan *
>



-- 
*Asitha Nanayakkara*
Software Engineer
WSO2, Inc. http://wso2.com/
Mob: +94 77 853 0682
___
Dev mailing list
Dev@wso2.org

Re: [Dev] ClassNotFoundException on deserializing a custom message object in Hazelcast

2016-05-11 Thread Kishanthan Thangarajah
Kalpa has already merged this. I hope you can continue the work with this
fix.

On Wed, May 11, 2016 at 1:43 PM, Asitha Nanayakkara  wrote:

> I raised the question in Hazelcast Gitter community and they got back to
> me saying to use the com.hazelcast.config.Config#setClassLoader(...) to set
> the requeired class loader as the solution.
>
> Since the issue affects all the users of carbon Hzelcast module we have to
> fix this in carbon Hazelcast module.
>
> @Kishanthan I've created a PR [1] with the suggested fix (by Hazelcast) to
> add the carbon hazelcast module class loader as the class loader of
> hazelcast bundle. Please review and merge.
>
> [1] https://github.com/wso2/carbon-kernel/pull/974
>
>
> On Tue, May 10, 2016 at 5:13 PM, Asitha Nanayakkara 
> wrote:
>
>> Hi All,
>>
>> We came across an issue with Hazelcast topics when passing custom message
>> objects (Can occur for Maps and all the other data structures in Hazelcast)
>> with C5 Hazelcast module. We have created an issue for this as well [1].
>> Use case
>>
>> I'm working with Hazelcast reliable topics in an OSGi environment. I'm
>> using a custom message object with Hazelcast topics ClusterNotification
>> 
>> .
>>
>> public class ClusterSubscriptionChangedListener implements 
>> MessageListener {
>>
>> /**
>>  * This method is triggered when a subscription is changed in clustered 
>> environment.
>>  *
>>  * @param message contains the ClusterNotification
>>  */
>> @Override
>> public void onMessage(Message message) {
>>// message handling logic
>> }
>>  }
>>
>> I'm publishing/receiving messages to/from Hazelcast topics from another
>> OSGi bundle.
>> Issue
>>
>> I can publish messages to the topic successfully. But I don't receive the
>> messages from the listener. This is because, when the Hazelcast topic ring
>> buffer runners try to pick the serialized message and de-serialize, it
>> throws a ClassNotFoundException. *And the exception is silently ignored*
>> and the message never received.
>> Root cause
>>
>> Class loader of the Hazelcast bundle cannot see the classes of my bundle.
>> Therefore even though I can publish the message from my bundle, Within
>> Hazelcast it can't de-serialize the ClusterNotification
>> 
>> object since the class loader of Hazelcast bundle cannot see the class.
>> Solution, way forward?
>>
>>
>>1. After having an offline discussion with Kishanthan we built the
>>hazelcast bundle with *
>>in the hazelcast pom.xml
>>
>>and we successfully received the messages (We didn't get the
>>ClassNotFoundException). But we need a fix from Hazelcast.
>>2. Another way Hazelcast has provided is to set the class loader for
>>the HazelcastInstance. So Internally Hazelcast instance will use the
>>provided class loader to deserialize the objects. If we provide our bundle
>>class loader it will properly deserialize the object without an issue.
>>
>>
>> @Kishanthan I tried to set the class loader of the carbon-kernel
>> hazelcast module to the hazelcast instance (when creating the hazelcast
>> instance[2]) and added dynamic imports * property (to get the solution 2
>> working from the carbon kernel hazelcast module itself). Still I'm having
>> issues in loading the Andes classes thorough the carbon Hazelcast module
>> class loader.
>> [1] https://github.com/hazelcast/hazelcast/issues/8139
>> [2]
>> https://github.com/wso2/carbon-kernel/blob/hamming-release-poc/modules/carbon-hazelcast/component/src/main/java/org/wso2/carbon/hazelcast/internal/CarbonHazelcastComponent.java#L60
>>
>> Regards,
>> Asitha
>>
>> --
>> *Asitha Nanayakkara*
>> Software Engineer
>> WSO2, Inc. http://wso2.com/
>> Mob: +94 77 853 0682
>>
>>
>
>
> --
> *Asitha Nanayakkara*
> Software Engineer
> WSO2, Inc. http://wso2.com/
> Mob: +94 77 853 0682
>
>


-- 
*Kishanthan Thangarajah*
Associate Technical Lead,
Platform Technologies Team,
WSO2, Inc.
lean.enterprise.middleware

Mobile - +94773426635
Blog - *http://kishanthan.wordpress.com *
Twitter - *http://twitter.com/kishanthan *
___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev


Re: [Dev] ClassNotFoundException on deserializing a custom message object in Hazelcast

2016-05-11 Thread Asitha Nanayakkara
I raised the question in Hazelcast Gitter community and they got back to me
saying to use the com.hazelcast.config.Config#setClassLoader(...) to set
the requeired class loader as the solution.

Since the issue affects all the users of carbon Hzelcast module we have to
fix this in carbon Hazelcast module.

@Kishanthan I've created a PR [1] with the suggested fix (by Hazelcast) to
add the carbon hazelcast module class loader as the class loader of
hazelcast bundle. Please review and merge.

[1] https://github.com/wso2/carbon-kernel/pull/974

On Tue, May 10, 2016 at 5:13 PM, Asitha Nanayakkara  wrote:

> Hi All,
>
> We came across an issue with Hazelcast topics when passing custom message
> objects (Can occur for Maps and all the other data structures in Hazelcast)
> with C5 Hazelcast module. We have created an issue for this as well [1].
> Use case
>
> I'm working with Hazelcast reliable topics in an OSGi environment. I'm
> using a custom message object with Hazelcast topics ClusterNotification
> 
> .
>
> public class ClusterSubscriptionChangedListener implements 
> MessageListener {
>
> /**
>  * This method is triggered when a subscription is changed in clustered 
> environment.
>  *
>  * @param message contains the ClusterNotification
>  */
> @Override
> public void onMessage(Message message) {
>// message handling logic
> }
>  }
>
> I'm publishing/receiving messages to/from Hazelcast topics from another
> OSGi bundle.
> Issue
>
> I can publish messages to the topic successfully. But I don't receive the
> messages from the listener. This is because, when the Hazelcast topic ring
> buffer runners try to pick the serialized message and de-serialize, it
> throws a ClassNotFoundException. *And the exception is silently ignored*
> and the message never received.
> Root cause
>
> Class loader of the Hazelcast bundle cannot see the classes of my bundle.
> Therefore even though I can publish the message from my bundle, Within
> Hazelcast it can't de-serialize the ClusterNotification
> 
> object since the class loader of Hazelcast bundle cannot see the class.
> Solution, way forward?
>
>
>1. After having an offline discussion with Kishanthan we built the
>hazelcast bundle with *
>in the hazelcast pom.xml
>
>and we successfully received the messages (We didn't get the
>ClassNotFoundException). But we need a fix from Hazelcast.
>2. Another way Hazelcast has provided is to set the class loader for
>the HazelcastInstance. So Internally Hazelcast instance will use the
>provided class loader to deserialize the objects. If we provide our bundle
>class loader it will properly deserialize the object without an issue.
>
>
> @Kishanthan I tried to set the class loader of the carbon-kernel hazelcast
> module to the hazelcast instance (when creating the hazelcast instance[2])
> and added dynamic imports * property (to get the solution 2 working from
> the carbon kernel hazelcast module itself). Still I'm having issues in
> loading the Andes classes thorough the carbon Hazelcast module class
> loader.
> [1] https://github.com/hazelcast/hazelcast/issues/8139
> [2]
> https://github.com/wso2/carbon-kernel/blob/hamming-release-poc/modules/carbon-hazelcast/component/src/main/java/org/wso2/carbon/hazelcast/internal/CarbonHazelcastComponent.java#L60
>
> Regards,
> Asitha
>
> --
> *Asitha Nanayakkara*
> Software Engineer
> WSO2, Inc. http://wso2.com/
> Mob: +94 77 853 0682
>
>


-- 
*Asitha Nanayakkara*
Software Engineer
WSO2, Inc. http://wso2.com/
Mob: +94 77 853 0682
___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev