868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024 -> 2025.
50c3b7b46 Migración en curso... (todas las pruebas de todos los paquetes: OK).
4942c854d Migración en curso...
d394f410f Migración en curso... (todas las pruebas de todos los paquetes: OK).
868d6abb7
2025 -> 2026868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java b/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
index e58f25362..972188fc0 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
@@ -3,7 +3,7 @@
// Project ProjectForge Community Edition
// www.projectforge.org
//
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge tiene doble licencia.
//
63081666f
Encabezados de archivos fuente: 2024 -> 2025.63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java b/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
index cbae8b998..e58f25362 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
@@ -3,7 +3,7 @@
// Project ProjectForge Community Edition
// www.projectforge.org
//
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge tiene doble licencia.
//
50c3b7b46
Migración en curso... (todas las pruebas de todos los paquetes: OK).50c3b7b46e5038432710f94a4f403dea31786a27
diff --git a/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java b/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
index 63e7da77c..cbae8b998 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
@@ -75,14 +75,13 @@ public class TeamCalCache extends AbstractCache {
* Previene cargas perezosas.
*/
public TeamCalDO getCalendarIfNotInitialized(TeamCalDO teamCalDO) {
- Long id = teamCalDO.getId();
- if (id == null) {
+ if (teamCalDO == null) {
return teamCalDO;
}
if (Hibernate.isInitialized(teamCalDO)) {
return teamCalDO;
}
- return getCalendar(id);
+ return getCalendar(teamCalDO.getId());
}
/** 4942c854d
Migración en curso...4942c854d9c05928c5d2712e58b309ad12da14f0
diff --git a/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java b/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
index 08ba0d1fa..63e7da77c 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
@@ -23,6 +23,7 @@
package org.projectforge.business.teamcal.admin;
+import org.hibernate.Hibernate;
import org.projectforge.business.teamcal.admin.model.TeamCalDO;
import org.projectforge.business.teamcal.admin.right.TeamCalRight;
import org.projectforge.business.user.UserRightId;
@@ -69,6 +70,21 @@ public class TeamCalCache extends AbstractCache {
return calendarMap.get(calendarId);
}
+ /**
+ * Devuelve el TeamCalDO si está inicializado (Hibernate). De lo contrario, se cargará desde la base de datos.
+ * Previene cargas perezosas.
+ */
+ public TeamCalDO getCalendarIfNotInitialized(TeamCalDO teamCalDO) {
+ Long id = teamCalDO.getId();
+ if (id == null) {
+ return teamCalDO;
+ }
+ if (Hibernate.isInitialized(teamCalDO)) {
+ return teamCalDO;
+ }
+ return getCalendar(id);
+ }
+
/**
* Obtiene calendarios ordenados (por título e id).
* d394f410f
Migración en curso... (todas las pruebas de todos los paquetes: OK).d394f410fc43d3e8ed04035f50382bffd8958a1d
diff --git a/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java b/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
index d05791377..08ba0d1fa 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/teamcal/admin/TeamCalCache.java
@@ -143,7 +143,7 @@ public class TeamCalCache extends AbstractCache {
@Override
protected void refresh() {
log.info("Inicializando TeamCalCache ...");
- persistenceService.runIsolatedReadOnly(context -> {
+ persistenceService.runIsolatedReadOnly(true, context -> {
TeamCalDao dao = ApplicationContextProvider.getApplicationContext().getBean(TeamCalDao.class);
if (dao == null || teamCalRight == null) {
teamCalRight = (TeamCalRight) userRights.getRight(UserRightId.PLUGIN_CALENDAR);
@@ -158,8 +158,8 @@ public class TeamCalCache extends AbstractCache {
}
}
this.calendarMap = map;
+ log.info("Inicialización de TeamCalCache completada: " + context.formatStats(true));
return null;
});
- log.info("Inicialización de TeamCalCache completada.");
}
}