<div dir="ltr">Hi Faseela,<div><br></div><div>there is blog entry about this subject: <a href="http://blog.infinispan.org/2013/07/store-data-by-reference-or-by-value.html">blog.infinispan.org/2013/07/store-data-by-reference-or-by-value.html</a></div>
<div><br></div><div>but really it is better not to use mutable objects in cache / all application objects which may be accessed by multiple</div><div>threads. You save yourself a lot of clone calls.</div><div><br></div><div>
Regards,</div><div>Zdenek Henek</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Nov 10, 2013 at 7:58 AM, Faseela K <span dir="ltr"><<a href="mailto:faseela.k@ericsson.com" target="_blank">faseela.k@ericsson.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Sanne,<br>
<br>
Thanks for the reply.<br>
Is there any infinispan "get" api, which returns a copy of the actual object, rather than returning the reference?<br>
Because, in my case, I need the value stored in the cache to arrive at the new value.<br>
Just wanted to know if it is possible to solve the issue without cloning the object.<br>
<br>
Thanks,<br>
Faseela<br>
<div class="im HOEnZb"><br>
<br>
-----Original Message-----<br>
From: <a href="mailto:infinispan-dev-bounces@lists.jboss.org">infinispan-dev-bounces@lists.jboss.org</a> [mailto:<a href="mailto:infinispan-dev-bounces@lists.jboss.org">infinispan-dev-bounces@lists.jboss.org</a>] On Behalf Of Sanne Grinovero<br>
Sent: Sunday, November 10, 2013 2:21 AM<br>
To: infinispan -Dev List<br>
</div><div class="HOEnZb"><div class="h5">Subject: Re: [infinispan-dev] Issue with transaction rollback<br>
<br>
Hi Faseela,<br>
you should not attempt to mutate the value retrieved from the Cache.<br>
I would suggest to only store immutable objects in a Cache; in other words rather than invoking a setter on property Name, replace the entry with a new instance of Rollback which has the new name.<br>
<br>
Sanne<br>
<br>
On 9 November 2013 19:31, Faseela K <<a href="mailto:faseela.k@ericsson.com">faseela.k@ericsson.com</a>> wrote:<br>
> Hi,<br>
><br>
> The issue I mentioned below was not related to nested transactions.<br>
> I debugged further, and the issue narrowed down to the following:<br>
><br>
> EmbeddedCacheManager manager = new<br>
> DefaultCacheManager("config/infinispan-config.xml");<br>
> Configuration rc = manager.getCacheConfiguration("transaction");<br>
> manager.defineConfiguration("test1", rc);<br>
> ConcurrentMap<String, Rollback> cache1 = manager.getCache("test1");<br>
> TransactionManager tm =<br>
> manager.getCache("transaction").getAdvancedCache().getTransactionManager();<br>
> Rollback t1 = new Rollback("k1", "v1");<br>
> cache1.put("k1", t1);<br>
> tm.begin();<br>
> Rollback tmp = cache1.get("k1");<br>
> tmp.setName("abcd");<br>
> cache1.replace("k1", tmp);<br>
> tm.rollback();<br>
><br>
> Even after doing the rollback, "k1" still points to name "abcd".<br>
> Only if I do a cache1.get("k1").clone(), rollback is functioning<br>
> as expected.<br>
><br>
> Thanks,<br>
> Faseela<br>
><br>
><br>
><br>
> ________________________________<br>
> From: <a href="mailto:infinispan-dev-bounces@lists.jboss.org">infinispan-dev-bounces@lists.jboss.org</a><br>
> [mailto:<a href="mailto:infinispan-dev-bounces@lists.jboss.org">infinispan-dev-bounces@lists.jboss.org</a>] On Behalf Of Faseela K<br>
> Sent: Friday, November 08, 2013 6:39 PM<br>
> To: infinispan -Dev List<br>
> Subject: [infinispan-dev] Issue with nested transactions<br>
><br>
> Hi,<br>
><br>
> I have two osgi bundles, both having two separate caches.<br>
> I explicitly started a transaction in Bundle 1.<br>
> Within the transaction, I am accessing Bundle 2's cache(this is<br>
> implicit transaction, since autocommit is true), and modifying it.<br>
> Now, there is some operation on Bundle 1's cache done.<br>
> After this operation, if I do a roll back, Only Bundle 1's cache<br>
> operations are getting rolled back.<br>
> I am not getting any error, though.<br>
> Does anyone know why this happens?<br>
><br>
> Steps :<br>
><br>
> 1) Bundle 1 - transaction started<br>
> 2) update bundle 2 cache<br>
> 3) update bundle 1 cache<br>
> 4) Bundle 1 - transaction rollback<br>
><br>
> Issue : bundle 2 cache not rolled back!!<br>
><br>
> Thanks,<br>
> Faseela<br>
><br>
><br>
> _______________________________________________<br>
> infinispan-dev mailing list<br>
> <a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>
> <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br>
_______________________________________________<br>
infinispan-dev mailing list<br>
<a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br>
<br>
_______________________________________________<br>
infinispan-dev mailing list<br>
<a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br>
</div></div></blockquote></div><br></div>