001
014
015 package com.liferay.portal.dao.orm.hibernate;
016
017 import com.liferay.portal.kernel.concurrent.ConcurrentReferenceKeyHashMap;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.kernel.memory.FinalizeManager;
021 import com.liferay.portal.kernel.util.ReflectionUtil;
022
023 import java.lang.reflect.Field;
024
025 import org.hibernate.intercept.FieldInterceptionHelper;
026
027
034 public class FieldInterceptionHelperUtil {
035
036 public static void initialize() {
037 try {
038 Field instrumentedCacheField = ReflectionUtil.getDeclaredField(
039 FieldInterceptionHelper.class, "_instrumentedCache");
040
041 instrumentedCacheField.set(
042 null,
043 new ConcurrentReferenceKeyHashMap<Class<?>, Boolean>(
044 FinalizeManager.WEAK_REFERENCE_FACTORY));
045 }
046 catch (NoSuchFieldException nsfe) {
047 _log.error(
048 "Missing Hibernate FieldInterceptionHelper patch from " +
049 "LPS-52218");
050 }
051 catch (Exception e) {
052 _log.error(e, e);
053 }
054 }
055
056 private static final Log _log = LogFactoryUtil.getLog(
057 FieldInterceptionHelperUtil.class);
058
059 }