Skip to content

[GH-3137] Bump jt-jiffle from 1.1.24 to 1.1.31 - #3138

Merged
jiayuasu merged 2 commits into
apache:masterfrom
james-willis:jw/bump-jt-jiffle-1131
Jul 22, 2026
Merged

[GH-3137] Bump jt-jiffle from 1.1.24 to 1.1.31#3138
jiayuasu merged 2 commits into
apache:masterfrom
james-willis:jw/bump-jt-jiffle-1131

Conversation

@james-willis

Copy link
Copy Markdown
Collaborator

Did you read the Contributor Guide?

  • Yes

Is this PR related to a ticket?

What changes were proposed in this PR?

Bump jt-jiffle.version 1.1.24 → 1.1.31 and janino-version 3.1.9 → 3.1.12 (the version jt-jiffle 1.1.31 is built against; janino is already shaded so Spark is unaffected). Add a MapAlgebraTest case for atan2 (added to Jiffle in 1.1.28 — the test guards against regressing below that) and document the new loop-iteration cap in the map algebra docs.

How was this patch tested?

  • mvn -pl common test -Dtest=MapAlgebraTest — 27/27 pass (JDK 17), including the new atan2 test which fails on 1.1.24.
  • mvn -pl common package — verified the shaded jar still relocates antlr/janino/jiffle correctly, with it.geosolutions.jaiext.jiffle.runtime.* left unshaded per the existing shade rules (antlr stays 4.7.1 upstream, so relocations are unchanged).

Why bump?

  1. Executor protection: on 1.1.24 a Jiffle script with a runaway loop hangs the Spark executor forever — jt-jiffle 1.1.24 generates unguarded loops. 1.1.31 adds a per-pixel iteration guard (default 200), so such scripts throw instead. Configurable via it.geosolutions.jaiext.jiffle.maxIterations (negative disables); now documented in Raster-map-algebra.md.
  2. atan2 and other math functions added in 1.1.28.
  3. NoData support in JiffleOp (1.1.29) and assorted fixes.

Compatibility note

User scripts with legitimately heavy per-pixel loops (>200 iterations) will now fail with a clear error unless the system property is raised — suggest a release-note entry.

Brings the per-pixel loop iteration guard (a runaway loop in an
RS_MapAlgebra script now fails fast instead of hanging the executor),
the atan2 function, and aligns janino with 3.1.12. Adds an atan2 map
algebra test and documents the maxIterations system property.
@james-willis
james-willis requested a review from jiayuasu as a code owner July 21, 2026 18:17
Comment thread docs/api/sql/Raster-map-algebra.md
Comment thread pom.xml
…I descriptor

Two relocation defects surfaced only on the shaded common artifact:

- The maxIterations JVM system-property key string literal in
  AbstractJiffleRuntime was rewritten by shade to the shaded prefix, so
  the documented key it.geosolutions.jaiext.jiffle.maxIterations was inert
  on the shipped jar. Exclude the key string from relocation so the shaded
  constant keeps its upstream name and matches the docs.

- The Janino META-INF/services/org.codehaus.commons.compiler.ICompilerFactory
  descriptor was copied unchanged while the implementation was relocated,
  so CompilerFactoryFactory.getDefaultCompilerFactory() failed via SPI on
  the shaded jar. Add ServicesResourceTransformer to rewrite the descriptor
  to the relocated class names.
@james-willis
james-willis requested a review from jiayuasu July 22, 2026 18:30
@jiayuasu jiayuasu added this to the sedona-1.9.1 milestone Jul 22, 2026
@jiayuasu
jiayuasu merged commit 64b0f8f into apache:master Jul 22, 2026
48 of 49 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bump jt-jiffle from 1.1.24 to 1.1.31

2 participants