What modifications are in ehcache-2.10.2-atlassian-4.jar?

We are using a patched version of ehcache-2.7.5 in JIRA 7.1.9 to address https://jira.atlassian.com/browse/JRA-62717

We noticed in the 7.2.3 update that jar is replaced by an Atlassian fork. What is in this fork? Is the source code available so we can apply our patch?

1 answer

1 accepted

1 votes
Chris Fuller Atlassian Team Nov 16, 2016

The reason for the modifications and the patch that was applied to fix it are both available here:

https://jira.terracotta.org/jira/browse/EHC-1132

 

Thanks. So would using the 2.10.3 version unmodified by Atlassian be an option?

Chris Fuller Atlassian Team Nov 16, 2016

To the best of my knowledge, yes.

That said, you should keep in mind that if Atlassian is not shipping that version yet, then we have not tested with it.  Using a version other than the one we supply may make it more difficult for the support team to help out if there are other changes included in that version that cause problems.

Thanks. We'll give it a shot.

If that doesn't work how do we see the patch from that terracotta ticket? Seems to be eluding me. Is it available in diff format somehow?

Chris Fuller Atlassian Team Nov 16, 2016

It isn't stated directly, just described.  it is replacing the final call to "getQuietly" with the block of text at the end.  The point is that this returns the loaded value directly instead of trying to retrieve it from the cache again.

Oh I see. Thanks.

Chris Fuller Atlassian Team Nov 16, 2016

I was able to hunt down the repo and extract a formal patch for you:

diff --git a/ehcache-core/src/main/java/net/sf/ehcache/Cache.java b/ehcache-core/src/main/java/net/sf/ehcache/Cache.java
index af1592e..cdd6043 100644
--- a/ehcache-core/src/main/java/net/sf/ehcache/Cache.java
+++ b/ehcache-core/src/main/java/net/sf/ehcache/Cache.java
@@ -1859,7 +1859,9 @@ public class Cache implements InternalEhcache, StoreListener {
                 value = loadValueUsingLoader(key, loader, loaderArgument);
             }
             if (value != null) {
-                put(new Element(key, value), false);
+                final Element newElement = new Element(key, value);
+                put(newElement, false);
+                return newElement;
             }
         } catch (TimeoutException e) {
             throw new LoaderTimeoutException("Timeout on load for key " + key, e);

Suggest an answer

Log in or Join to answer
Community showcase
Sarah Schuster
Posted Jan 29, 2018 in Jira

What are common themes you've seen across successful & failed Jira Software implementations?

Hey everyone! My name is Sarah Schuster, and I'm a Customer Success Manager in Atlassian specializing in Jira Software Cloud. Over the next few weeks I will be posting discussion topics (8 total) to ...

3,129 views 13 19
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot