From 59f95107d5c4bd0d466d9f206f08a5b5dbc1bf55 Mon Sep 17 00:00:00 2001 From: Xiqinger <163422483+Xiqinger@users.noreply.github.com> Date: Tue, 26 Mar 2024 17:29:12 +0800 Subject: [PATCH] Add hasNext check before call next. --- .../main/java/com/xpn/xwiki/doc/XWikiDocumentArchive.java | 3 +++ .../xwiki/internal/store/hibernate/query/HqlQueryUtils.java | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/doc/XWikiDocumentArchive.java b/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/doc/XWikiDocumentArchive.java index 4d5a37ae8c47..0dbd67a49997 100644 --- a/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/doc/XWikiDocumentArchive.java +++ b/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/doc/XWikiDocumentArchive.java @@ -263,6 +263,9 @@ public void setArchive(String text) throws XWikiException Collection nodes = archive.getNodes(getWikiReference(), getId()); for (Iterator it = nodes.iterator(); it.hasNext();) { XWikiRCSNodeInfo nodeInfo = (XWikiRCSNodeInfo) it.next(); + if (!it.hasNext()) { + throw new IllegalStateException("The number of nodes is an odd number."); + } XWikiRCSNodeContent nodeContent = (XWikiRCSNodeContent) it.next(); updateNode(nodeInfo); this.updatedNodeInfos.add(nodeInfo); diff --git a/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/internal/store/hibernate/query/HqlQueryUtils.java b/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/internal/store/hibernate/query/HqlQueryUtils.java index c08a3622496d..6fbe594c9864 100644 --- a/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/internal/store/hibernate/query/HqlQueryUtils.java +++ b/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/internal/store/hibernate/query/HqlQueryUtils.java @@ -303,7 +303,10 @@ private static boolean isTableAllowed(String tableName) } private static String getTableName(Table table, Map tables) - { + { + if (tables.isEmpty()) { + return ""; + } String tableName = tables.values().iterator().next(); if (table != null && StringUtils.isNotEmpty(table.getFullyQualifiedName())) {