From 35851e60a7a2ddac024dab629fc29d3d114574b5 Mon Sep 17 00:00:00 2001
From: rhaag <none@none>
Date: Mon, 11 Jul 2011 15:11:52 +0200
Subject: [PATCH] OLAT-6265 FXOLAT-193 shorten key if needed

--HG--
branch : uzhFixes711
---
 .../org/olat/modules/webFeed/managers/FeedManagerImpl.java    | 4 ++++
 .../src/main/java/org/olat/core/util/resource/OresHelper.java | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/olat3/webapp/WEB-INF/src/org/olat/modules/webFeed/managers/FeedManagerImpl.java b/olat3/webapp/WEB-INF/src/org/olat/modules/webFeed/managers/FeedManagerImpl.java
index ffdf3b68e2d..40b9d1d63e5 100644
--- a/olat3/webapp/WEB-INF/src/org/olat/modules/webFeed/managers/FeedManagerImpl.java
+++ b/olat3/webapp/WEB-INF/src/org/olat/modules/webFeed/managers/FeedManagerImpl.java
@@ -38,6 +38,7 @@ import org.olat.core.id.OLATResourceable;
 import org.olat.core.logging.AssertException;
 import org.olat.core.logging.OLog;
 import org.olat.core.util.CodeHelper;
+import org.olat.core.util.Encoder;
 import org.olat.core.util.Formatter;
 import org.olat.core.util.ImageHelper;
 import org.olat.core.util.StringHelper;
@@ -1209,6 +1210,9 @@ public abstract class FeedManagerImpl extends FeedManager {
 	 */
 	public LockResult acquireLock(OLATResourceable feed, Item item, Identity identity) {
 		String key = itemKey(item, feed);
+		if (key.length() >= OresHelper.ORES_TYPE_LENGTH) {
+			key = Encoder.encrypt(key);
+		}
 		OLATResourceable itemResource = OresHelper.createOLATResourceableType(key);
 		LockResult lockResult = coordinator.getLocker().acquireLock(itemResource, identity, key);
 		return lockResult;
diff --git a/olatcore/src/main/java/org/olat/core/util/resource/OresHelper.java b/olatcore/src/main/java/org/olat/core/util/resource/OresHelper.java
index cc21cb384ef..41d73f4acdb 100644
--- a/olatcore/src/main/java/org/olat/core/util/resource/OresHelper.java
+++ b/olatcore/src/main/java/org/olat/core/util/resource/OresHelper.java
@@ -35,7 +35,7 @@ import org.olat.core.util.Encoder;
  * @author Felix Jost
  */
 public class OresHelper {
-	private static final int ORES_TYPE_LENGTH = 50; 
+	public static final int ORES_TYPE_LENGTH = 50; 
 	private static final int ORES_TYPE_SUBTYPELENGTH = 15; // so 35 remain for the class name (without package) 
 
 	/**
-- 
GitLab