Modified getLogString with more NULL Safety
The old implementation causes a NPE if the `session` or the `project` is null in line 1102. This new implementation of will not.
The session being NULL is plausible, because the `appendLogParameters` function, which is called in line 1111, starts with a NULL check.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredProcedureCall.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredProcedureCall.java
index 84b4561..165c0ee 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredProcedureCall.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredProcedureCall.java
@@ -1099,7 +1099,7 @@
session = getQuery().getSession();
}
List<String> procedureArgs = getProcedureArgumentNames();
- boolean indexBased = procedureArgs.size() == 0 || procedureArgs.get(0) == null || session.getProject().namingIntoIndexed();
+ boolean indexBased = isIndexBased(procedureArgs, session);
Collection<String> parameters = new ArrayList<>();
for (int index = 0; index < getParameters().size(); index++) {
if (indexBased) {
@@ -1115,4 +1115,13 @@
return getSQLString();
}
}
+
+ private boolean isIndexBased(List<String> procedureArgs, AbstractSession session) {
+ boolean hasNoArgs = procedureArgs.size() == 0 || procedureArgs.get(0) == null;
+ boolean isNamingIntoIndexed = false;
+ if (session != null && session.getProject() != null) {
+ isNamingIntoIndexed = session.getProject().namingIntoIndexed();
+ }
+ return hasNoArgs || isNamingIntoIndexed;
+ }
}