This is an automated email from the ASF dual-hosted git repository.
epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/main by this push:
new 9e8e91e4b77 Review and tidy solr/modules/scripting code (#4839)
9e8e91e4b77 is described below
commit 9e8e91e4b779828b1fd21045b9a9f9d600d4aa98
Author: Eric Pugh <[email protected]>
AuthorDate: Thu Sep 10 08:36:31 2026 -0400
Review and tidy solr/modules/scripting code (#4839)
---
.../solr/scripting/update/ScriptUpdateProcessorFactory.java | 12 ++++++------
.../org/apache/solr/scripting/xslt/TransformerProvider.java | 4 ++--
.../org/apache/solr/scripting/xslt/XSLTResponseWriter.java | 8 ++++----
.../conf/bad-solrconfig-bogus-scriptengine-name.xml | 2 +-
.../org/apache/solr/scripting/update/ScriptEngineTest.java | 2 +-
.../scripting/update/ScriptUpdateProcessorFactoryTest.java | 13 ++++++-------
.../update/TestBadScriptingUpdateProcessorConfig.java | 4 ++--
.../solr/scripting/xslt/XSLTUpdateRequestHandlerTest.java | 2 +-
8 files changed, 23 insertions(+), 24 deletions(-)
diff --git
a/solr/modules/scripting/src/java/org/apache/solr/scripting/update/ScriptUpdateProcessorFactory.java
b/solr/modules/scripting/src/java/org/apache/solr/scripting/update/ScriptUpdateProcessorFactory.java
index 19842bc42ae..5dcb4207ad5 100644
---
a/solr/modules/scripting/src/java/org/apache/solr/scripting/update/ScriptUpdateProcessorFactory.java
+++
b/solr/modules/scripting/src/java/org/apache/solr/scripting/update/ScriptUpdateProcessorFactory.java
@@ -155,7 +155,7 @@ public class ScriptUpdateProcessorFactory extends
UpdateRequestProcessorFactory
private List<ScriptFile> scriptFiles;
- /** if non null, this is an override for the engine for all scripts */
+ /** if non-null, this is an override for the engine for all scripts */
private String engineName = null;
private Object params = null;
@@ -200,7 +200,7 @@ public class ScriptUpdateProcessorFactory extends
UpdateRequestProcessorFactory
@Override
public UpdateRequestProcessor getInstance(
SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor
next) {
- List<EngineInfo> scriptEngines = null;
+ List<EngineInfo> scriptEngines;
scriptEngines = initEngines(req, rsp);
@@ -286,7 +286,7 @@ public class ScriptUpdateProcessorFactory extends
UpdateRequestProcessorFactory
"Engine "
+ ((null != engineName) ? engineName : ("for script " +
scriptFile.getFileName()))
+ " does not support function invocation (via Invocable): "
- + engine.getClass().toString()
+ + engine.getClass()
+ " ("
+ engine.getFactory().getEngineName()
+ ")";
@@ -335,7 +335,7 @@ public class ScriptUpdateProcessorFactory extends
UpdateRequestProcessorFactory
}
/**
- * For error messages - returns null if there are any exceptions of any kind
building the string
+ * For error messages - returns null if there are any exceptions registered
building the string
* (or of the list is empty for some unknown reason).
*
* @param ext - if true, list of extensions, otherwise a list of engine names
@@ -437,8 +437,8 @@ public class ScriptUpdateProcessorFactory extends
UpdateRequestProcessorFactory
for (EngineInfo engine : engines) {
try {
Object result = engine.getEngine().invokeFunction(name, cmd);
- if (null != result && result instanceof Boolean) {
- if (!((Boolean) result).booleanValue()) {
+ if (result instanceof Boolean) {
+ if (!(Boolean) result) {
return false;
}
}
diff --git
a/solr/modules/scripting/src/java/org/apache/solr/scripting/xslt/TransformerProvider.java
b/solr/modules/scripting/src/java/org/apache/solr/scripting/xslt/TransformerProvider.java
index 390fc2ceb77..6acce2e0c19 100644
---
a/solr/modules/scripting/src/java/org/apache/solr/scripting/xslt/TransformerProvider.java
+++
b/solr/modules/scripting/src/java/org/apache/solr/scripting/xslt/TransformerProvider.java
@@ -57,7 +57,7 @@ class TransformerProvider {
/** singleton */
private TransformerProvider() {
- // tell'em: currently, we only cache the last used XSLT transform, and
blindly recompile it
+ // currently, we only cache the last used XSLT transform, and blindly
recompile it
// once cacheLifetimeSeconds expires
log.warn(
"The TransformerProvider's simplistic XSLT caching mechanism is not
appropriate "
@@ -74,7 +74,7 @@ class TransformerProvider {
SolrQueryRequest request, String xslt, int xsltCacheLifetimeSeconds)
throws IOException {
// not the cleanest way to achieve this
// no need to synchronize access to context, right?
- // Nothing else happens with it at the same time
+ // Nothing else happens to it at the same time
final Map<Object, Object> ctx = request.getContext();
Transformer result = (Transformer) ctx.get(CONTEXT_TRANSFORMER_KEY);
if (result == null) {
diff --git
a/solr/modules/scripting/src/java/org/apache/solr/scripting/xslt/XSLTResponseWriter.java
b/solr/modules/scripting/src/java/org/apache/solr/scripting/xslt/XSLTResponseWriter.java
index 15b648510dc..064033732f0 100644
---
a/solr/modules/scripting/src/java/org/apache/solr/scripting/xslt/XSLTResponseWriter.java
+++
b/solr/modules/scripting/src/java/org/apache/solr/scripting/xslt/XSLTResponseWriter.java
@@ -57,7 +57,7 @@ public class XSLTResponseWriter implements
TextQueryResponseWriter {
@Override
public String getContentType(SolrQueryRequest request, SolrQueryResponse
response) {
- Transformer t = null;
+ Transformer t;
try {
t = getTransformer(request);
} catch (Exception e) {
@@ -66,16 +66,16 @@ public class XSLTResponseWriter implements
TextQueryResponseWriter {
}
String mediaType = t.getOutputProperty("media-type");
- if (mediaType == null || mediaType.length() == 0) {
+ if (mediaType == null || mediaType.isEmpty()) {
// This did not happen in my tests, mediaTypeFromXslt is set to
"text/xml"
- // if the XSLT transform does not contain an xsl:output element. Not sure
+ // if the XSLT transform does not contain a xsl:output element. Not sure
// if this is standard behavior or if it's just my JVM/libraries
mediaType = DEFAULT_CONTENT_TYPE;
}
if (!mediaType.contains("charset")) {
String encoding = t.getOutputProperty("encoding");
- if (encoding == null || encoding.length() == 0) {
+ if (encoding == null || encoding.isEmpty()) {
encoding = "UTF-8";
}
mediaType = mediaType + "; charset=" + encoding;
diff --git
a/solr/modules/scripting/src/test-files/scripting/solr/collection1/conf/bad-solrconfig-bogus-scriptengine-name.xml
b/solr/modules/scripting/src/test-files/scripting/solr/collection1/conf/bad-solrconfig-bogus-scriptengine-name.xml
index 9bc55069154..793b92efceb 100644
---
a/solr/modules/scripting/src/test-files/scripting/solr/collection1/conf/bad-solrconfig-bogus-scriptengine-name.xml
+++
b/solr/modules/scripting/src/test-files/scripting/solr/collection1/conf/bad-solrconfig-bogus-scriptengine-name.xml
@@ -23,7 +23,7 @@
<updateRequestProcessorChain name="force-script-engine" default="true">
<processor
class="org.apache.solr.scripting.update.ScriptUpdateProcessorFactory">
- <str name="engine">giberish</str>
+ <str name="engine">gibberish</str>
<str name="script">missleading.extension.updateprocessor.js.txt</str>
</processor>
<processor class="solr.RunUpdateProcessorFactory" />
diff --git
a/solr/modules/scripting/src/test/org/apache/solr/scripting/update/ScriptEngineTest.java
b/solr/modules/scripting/src/test/org/apache/solr/scripting/update/ScriptEngineTest.java
index 735f649afe0..db86a0a5ea1 100644
---
a/solr/modules/scripting/src/test/org/apache/solr/scripting/update/ScriptEngineTest.java
+++
b/solr/modules/scripting/src/test/org/apache/solr/scripting/update/ScriptEngineTest.java
@@ -35,7 +35,7 @@ public class ScriptEngineTest extends SolrTestCase {
private ScriptEngineManager manager;
@BeforeClass
- public static void beforeClass() throws Exception {
+ public static void beforeClass() {
assumeFalse(
"https://twitter.com/UweSays/status/260487231880433664 / SOLR-4233: OS
X bogusly starts AWT!",
Constants.MAC_OS_X);
diff --git
a/solr/modules/scripting/src/test/org/apache/solr/scripting/update/ScriptUpdateProcessorFactoryTest.java
b/solr/modules/scripting/src/test/org/apache/solr/scripting/update/ScriptUpdateProcessorFactoryTest.java
index ba342128649..4808baa4046 100644
---
a/solr/modules/scripting/src/test/org/apache/solr/scripting/update/ScriptUpdateProcessorFactoryTest.java
+++
b/solr/modules/scripting/src/test/org/apache/solr/scripting/update/ScriptUpdateProcessorFactoryTest.java
@@ -74,7 +74,7 @@ public class ScriptUpdateProcessorFactoryTest extends
UpdateProcessorTestBase {
SolrCore core = h.getCore();
UpdateRequestProcessorChain chained =
core.getUpdateProcessingChain("single-script");
final ScriptUpdateProcessorFactory factory =
- ((ScriptUpdateProcessorFactory) chained.getProcessors().get(0));
+ ((ScriptUpdateProcessorFactory) chained.getProcessors().getFirst());
final List<String> functionMessages = new ArrayList<>();
factory.setScriptEngineCustomizer(
new ScriptEngineCustomizer() {
@@ -85,8 +85,7 @@ public class ScriptUpdateProcessorFactoryTest extends
UpdateProcessorTestBase {
});
assertNotNull(chained);
- SolrInputDocument d =
- processAdd("single-script", doc(f("id", "1"), f("name", " foo "),
f("subject", "bar")));
+ processAdd("single-script", doc(f("id", "1"), f("name", " foo "),
f("subject", "bar")));
processCommit("run-no-scripts");
@@ -111,7 +110,7 @@ public class ScriptUpdateProcessorFactoryTest extends
UpdateProcessorTestBase {
UpdateRequestProcessorChain chained =
core.getUpdateProcessingChain(chain);
final ScriptUpdateProcessorFactory factory =
- ((ScriptUpdateProcessorFactory) chained.getProcessors().get(0));
+ ((ScriptUpdateProcessorFactory) chained.getProcessors().getFirst());
final List<String> functionMessages = new ArrayList<>();
ScriptEngineCustomizer customizer =
new ScriptEngineCustomizer() {
@@ -202,7 +201,7 @@ public class ScriptUpdateProcessorFactoryTest extends
UpdateProcessorTestBase {
assertEquals(chain + " didn't add integer field", 42,
d.getFieldValue("script_added_i"));
}
- public void testPropogatedException() throws Exception {
+ public void testPropagatedException() {
final String chain = "error-on-add";
SolrException e =
expectThrows(
@@ -213,7 +212,7 @@ public class ScriptUpdateProcessorFactoryTest extends
UpdateProcessorTestBase {
0 < e.getMessage().indexOf("no-soup-fo-you"));
}
- public void testMissingFunctions() throws Exception {
+ public void testMissingFunctions() {
final String chain = "missing-functions";
SolrException e =
expectThrows(
@@ -233,7 +232,7 @@ public class ScriptUpdateProcessorFactoryTest extends
UpdateProcessorTestBase {
@SuppressWarnings("removal")
@SuppressForbidden(reason = "Deprecated for removal in future Java version")
- public void testScriptSandbox() throws Exception {
+ public void testScriptSandbox() {
assumeTrue("This test only works with security manager",
System.getSecurityManager() != null);
expectThrows(
SecurityException.class,
diff --git
a/solr/modules/scripting/src/test/org/apache/solr/scripting/update/TestBadScriptingUpdateProcessorConfig.java
b/solr/modules/scripting/src/test/org/apache/solr/scripting/update/TestBadScriptingUpdateProcessorConfig.java
index 6b45f5eff86..2a8fff3bbb8 100644
---
a/solr/modules/scripting/src/test/org/apache/solr/scripting/update/TestBadScriptingUpdateProcessorConfig.java
+++
b/solr/modules/scripting/src/test/org/apache/solr/scripting/update/TestBadScriptingUpdateProcessorConfig.java
@@ -29,13 +29,13 @@ public class TestBadScriptingUpdateProcessorConfig extends
SolrTestCaseJ4 {
public void testBogusScriptEngine() throws Exception {
// sanity check
- Assume.assumeTrue(null == (new
ScriptEngineManager()).getEngineByName("giberish"));
+ Assume.assumeTrue(null == (new
ScriptEngineManager()).getEngineByName("gibberish"));
assertConfigs(
"bad-solrconfig-bogus-scriptengine-name.xml",
"schema.xml",
getFile("scripting/solr/collection1").getParent().toString(),
- "giberish");
+ "gibberish");
}
public void testMissingScriptFile() throws Exception {
diff --git
a/solr/modules/scripting/src/test/org/apache/solr/scripting/xslt/XSLTUpdateRequestHandlerTest.java
b/solr/modules/scripting/src/test/org/apache/solr/scripting/xslt/XSLTUpdateRequestHandlerTest.java
index 161b8acfb5a..1376cda2951 100644
---
a/solr/modules/scripting/src/test/org/apache/solr/scripting/xslt/XSLTUpdateRequestHandlerTest.java
+++
b/solr/modules/scripting/src/test/org/apache/solr/scripting/xslt/XSLTUpdateRequestHandlerTest.java
@@ -116,7 +116,7 @@ public class XSLTUpdateRequestHandlerTest extends
SolrTestCaseJ4 {
ContentStreamLoader loader = new
XSLTUpdateRequestHandler.XsltXMLLoader().init(null);
loader.load(req, rsp, new ContentStreamBase.StringStream(xml), p);
- AddUpdateCommand add = p.addCommands.get(0);
+ AddUpdateCommand add = p.addCommands.getFirst();
assertEquals("12345", add.solrDoc.getField("id").getFirstValue());
assertEquals("zzz", add.solrDoc.getField("foo_s").getFirstValue());
req.close();