From 1ab90d96f523e780a6e19c5c53edad5585bd94c4 Mon Sep 17 00:00:00 2001 From: Jared Stehler Date: Wed, 28 May 2025 13:58:18 -0400 Subject: [PATCH 1/2] bump basepom to 63, add required pom metadata fields --- pom.xml | 13 +++++++++++-- .../com/hubspot/jinjava/el/ext/ExtendedScanner.java | 5 +++++ .../jinjava/interpret/JinjavaInterpreter.java | 5 ----- .../hubspot/jinjava/lib/filter/AbstractFilter.java | 5 ----- .../jinjava/lib/fn/eager/EagerMacroFunction.java | 9 +++++---- .../mode/NonRevertingEagerExecutionMode.java | 6 ++++++ 6 files changed, 27 insertions(+), 16 deletions(-) diff --git a/pom.xml b/pom.xml index ee78e721a..332e0bdb1 100644 --- a/pom.xml +++ b/pom.xml @@ -5,12 +5,14 @@ com.hubspot basepom - 59.11 + 63.0 com.hubspot.jinjava jinjava 2.8.1-SNAPSHOT + + ${project.groupId}:${project.artifactId} Jinja templating engine implemented in Java @@ -329,6 +331,13 @@ https://github.com/HubSpot/jinjava + + + The Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + jaredstehler @@ -349,7 +358,7 @@ - basepom.oss-release + basepom.central-release true true diff --git a/src/main/java/com/hubspot/jinjava/el/ext/ExtendedScanner.java b/src/main/java/com/hubspot/jinjava/el/ext/ExtendedScanner.java index bf54da80f..1116c275b 100644 --- a/src/main/java/com/hubspot/jinjava/el/ext/ExtendedScanner.java +++ b/src/main/java/com/hubspot/jinjava/el/ext/ExtendedScanner.java @@ -1,6 +1,7 @@ package com.hubspot.jinjava.el.ext; import de.odysseus.el.tree.impl.Scanner; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -58,6 +59,10 @@ protected boolean isWhitespace(char c) { } } + @SuppressFBWarnings( + value = "HSM_HIDING_METHOD", + justification = "Purposefully overriding to use static method instance of this class." + ) protected static void addKeyToken(Token token) { try { ADD_KEY_TOKEN_METHOD.invoke(null, token); diff --git a/src/main/java/com/hubspot/jinjava/interpret/JinjavaInterpreter.java b/src/main/java/com/hubspot/jinjava/interpret/JinjavaInterpreter.java index 843eb0c49..82025b946 100644 --- a/src/main/java/com/hubspot/jinjava/interpret/JinjavaInterpreter.java +++ b/src/main/java/com/hubspot/jinjava/interpret/JinjavaInterpreter.java @@ -59,7 +59,6 @@ import com.hubspot.jinjava.util.RenderLimitUtils; import com.hubspot.jinjava.util.Variable; import com.hubspot.jinjava.util.WhitespaceUtils; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -526,10 +525,6 @@ private boolean isEagerExtendsTag(TagNode node) { ); } - @SuppressFBWarnings( - justification = "Iterables#getFirst DOES allow null for default value", - value = "NP_NONNULL_PARAM_VIOLATION" - ) private void resolveBlockStubs(OutputList output, Stack blockNames) { for (BlockPlaceholderOutputNode blockPlaceholder : output.getBlocks()) { if (!blockNames.contains(blockPlaceholder.getBlockName())) { diff --git a/src/main/java/com/hubspot/jinjava/lib/filter/AbstractFilter.java b/src/main/java/com/hubspot/jinjava/lib/filter/AbstractFilter.java index d53d2a97f..b39344c05 100644 --- a/src/main/java/com/hubspot/jinjava/lib/filter/AbstractFilter.java +++ b/src/main/java/com/hubspot/jinjava/lib/filter/AbstractFilter.java @@ -21,7 +21,6 @@ import com.hubspot.jinjava.doc.annotations.JinjavaParam; import com.hubspot.jinjava.interpret.InvalidInputException; import com.hubspot.jinjava.interpret.JinjavaInterpreter; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; @@ -69,10 +68,6 @@ public Object filter(Object var, JinjavaInterpreter interpreter, String... args) return filter(var, interpreter, args, Collections.emptyMap()); } - @SuppressFBWarnings( - value = "UC_USELESS_OBJECT", - justification = "FB bug prevents forEach() method call counting `namedArgs` as used (fixed in next release)" - ) public Object filter( Object var, JinjavaInterpreter interpreter, diff --git a/src/main/java/com/hubspot/jinjava/lib/fn/eager/EagerMacroFunction.java b/src/main/java/com/hubspot/jinjava/lib/fn/eager/EagerMacroFunction.java index af8d8fbd2..b4fdda3da 100644 --- a/src/main/java/com/hubspot/jinjava/lib/fn/eager/EagerMacroFunction.java +++ b/src/main/java/com/hubspot/jinjava/lib/fn/eager/EagerMacroFunction.java @@ -26,6 +26,7 @@ import java.util.Map.Entry; import java.util.Optional; import java.util.StringJoiner; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import java.util.function.Supplier; @@ -36,7 +37,7 @@ public class EagerMacroFunction extends MacroFunction { private AtomicInteger callCount = new AtomicInteger(); - private boolean reconstructing = false; + private AtomicBoolean reconstructing = new AtomicBoolean(); public EagerMacroFunction( List content, @@ -68,7 +69,7 @@ public Object doEvaluate( List varArgs ) { JinjavaInterpreter interpreter = JinjavaInterpreter.getCurrent(); - if (reconstructing) { + if (reconstructing.get()) { Optional importFile = getImportFile(interpreter); try (InterpreterScopeClosable c = interpreter.enterScope()) { EagerExecutionResult result = eagerEvaluateInDeferredExecutionMode( @@ -266,7 +267,7 @@ public String reconstructImage(String fullName) { return ""; } else { try (InterpreterScopeClosable c = interpreter.enterScope()) { - reconstructing = true; + reconstructing.set(true); String evaluation = (String) evaluate( getArguments().stream().map(arg -> DeferredMacroValueImpl.instance()).toArray() ); @@ -284,7 +285,7 @@ public String reconstructImage(String fullName) { } result.append(super.reconstructImage()); } finally { - reconstructing = false; + reconstructing.set(false); interpreter .getContext() .put(Context.DEFERRED_IMPORT_RESOURCE_PATH_KEY, currentDeferredImportResource); diff --git a/src/main/java/com/hubspot/jinjava/mode/NonRevertingEagerExecutionMode.java b/src/main/java/com/hubspot/jinjava/mode/NonRevertingEagerExecutionMode.java index 536e2c0ff..00ccc7d53 100644 --- a/src/main/java/com/hubspot/jinjava/mode/NonRevertingEagerExecutionMode.java +++ b/src/main/java/com/hubspot/jinjava/mode/NonRevertingEagerExecutionMode.java @@ -1,11 +1,17 @@ package com.hubspot.jinjava.mode; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; + public class NonRevertingEagerExecutionMode extends EagerExecutionMode { private static final ExecutionMode INSTANCE = new NonRevertingEagerExecutionMode(); protected NonRevertingEagerExecutionMode() {} + @SuppressFBWarnings( + value = "HSM_HIDING_METHOD", + justification = "Purposefully overriding to return static instance of this class." + ) public static ExecutionMode instance() { return INSTANCE; } From c9508923f23c8ffd5f36ef849de58c241ae9a7e6 Mon Sep 17 00:00:00 2001 From: Jared Stehler Date: Thu, 24 Jul 2025 10:40:32 -0400 Subject: [PATCH 2/2] Update pom.xml --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 332e0bdb1..a7e74868d 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.hubspot basepom - 63.0 + 63.4 com.hubspot.jinjava