Release Notes 24.09.08
Apache OFBiz® 24.09.08, released in November 2026, is the eighth release of the 24.09 series, which has been feature-frozen since September 2024, receiving only bug fixes.
Security fixes
- Backport pr 1502 - Fixed: Add validation for product image file names in renameImage to prevent path traversal in #1505
- Backport PR 1512 - Improved: hardens validation of screen location in #1528
- Improved: Authorization enforcement for HumanRes category tree data access (#1637) in #1640
- Tighten how suffix-selected views resolve against their owning request map in #1645
- Improved: Enhance RequestHandler view state persistence and screen location resolution (#1624) in #1653
- Restrict widget resource locations to component:// or an explicit allowlist (#1650) in #1654
- Improved: Validate tenant ID before creating a per-tenant delegator in #1663
- Improved: Add validation and permission check to replaceImageToExistImage service in #1672
- Improved: Add permission check and path validation to imageCrop and imageRotate services in #1676
- Improved: Add missing permission and path checks across ImageManagementServices methods in #1680
- Improved: Check path containment before invoking SecuredUpload.isValidFileName in isValidProductImageFileName in #1685
- Improved input handling and access control around the invoice email-aending flow in #1706
- Improved webtools data file viewer URL handling (#1707) in #1708
- Improved externalLoginKey handling for cross-application navigation (…#1710) in #1713
- Improved: escape link parameter values in MacroScreenRenderer.renderLink (#1711) in #1715
- Improved: add permission and path checks to XmlDsDump.groovy (#1712) in #1714
- Introducing upper bound for rowCount in MultiForm-Requests (#1691) in #1716
- Improved: authorization checks on Catalog and Order Manager helper routes (#1717) in #1728
- Improved: Align survey template location resolution with other widget/template loaders (#1730) in #1732
- Improved: Build an explicit DocumentBuilder for XML-typed content rendering in ContentWorker (#1731) in #1733
- Improved: Anchor content role-creation permission checks to the target content (#1734) in #1737
- Improved: Reuse existing catalog permission checks for search-result bulk actions (#1735) in #1738
- Improved: Anchor catalog quick-admin write events to their permission tier (#1739) in #1740
- Improved: bind EntityFunction literal values as SQL parameters instead of inlining them (#1729) in #1742
- Fixed: updateLayout authorizing under CONTENT_CREATE then updating unrelated records unchecked (#1745) in #1746
- Fixed: CMS use-when expressions still templated into string literals in #1789
- Fixed: arbitrary service execution via Content.serviceName in ContentWorker in #1791
- Improved: Align tenant resolution between LoginWorker and ContextFilter (#1835) in #1841
- Fixed: externalLoginKey enable flag never checked, cannot be changed live (OFBIZ-13519) in #1848
- Improved: Route the layout-image events through the permission-checked content services and tighten data resource template rendering (#1846) in #1857
- Improved: Bind externalLoginKey to its intended destination webapps instead of validating against any webapp on the server (OFBIZ-13522) in #1856
- Fixed: AdminServer no longer starts without a configured admin key in #2067
- Fixed: ViewFile no longer discloses arbitrary properties or xml files in #2080
- Improved: moveContentJson lets a caller without UPDATE permission re-parent content associations in #2065
- Fixed: createReturnItem() does not cap returnPrice to returnablePrice for non-privileged callers in #2083
- Improved: deleteContentJson lets a caller without DELETE permission detach content and cascade-delete its alias subtree in #2100
- Fixed: quickReturnFromOrder() permission guard is a no-op due to an operator-precedence error in #2102
- Improved: added a rotateSecretKeys Gradle task to unconditionally replace an already-set JWT/password secret key in #2091
- Fix: Adds missing CREATE and UPDATE accounting permissions in #2211
- Fixed: Hardens security by adding missing permission check in #2218
- Fixed: Enforces order-update authorization in updateOrderPaymentPreference in #2258
- Fixed: createReturnItem() does not verify OrderItem ownership before attaching it to a ReturnHeader in #2271
- Fixed: Missing permission checks on FinAccount create/update/delete services in #2266
- Improved: Scope password-reset JWTs to their purpose, confined to the password-change flow in #2277
- Fixed: Missing permission checks on FinAccount GL-reconciliation services (OFBIZ-13683) in #2302
- Fixed: Encode the source URL of screen image widgets in #2360
- Fixed: Enforces order-update authorization in updateShipGroupShipInfo and addItemToApprovedOrder in #2362
- Fixed: Require the ORDERMGR_UPDATE permission in the updateTrackingNumber service in #2364
- Fixed: Check the owner of the shopping list in checkShoppingListSecurity in #2377
- Fixed: Check that the dataResourceId belongs to the contentId in SimpleContentViewHandler in #2379
- Implemented: Remove Janrain matches from SpotBugs exclude.xml in #2383
- Fixed: ModelApiReader resolved omitted auth/publish attributes to false, opposite of rest-api.xsd's declared default in #408
- Implemented: Remove Janrain integration in #454
Security hardening
- Backport pr 1388: Improved: Simplify handling of hidden fields in order search form in #1389
- Fixed: unrestricted file destination in DataServices createFile/updateFile in #1748
- Improved: Validate the InventoryItem and the issued quantity in the issueInventoryItemToShipment service in #2238
- Improved: Validate the FTP connection target hostname in sendContentToFtp before connecting in #2275
Bug fixes
- Fixed: duplicate QuoteRole insertion error in copyQuote service (OFBIZ-13436) in #1347
- Backport PR #1360: 'Fixed: Disable Quick Receive and Receive buttons on the Order View page when a PO has multiple ship groups (OFBIZ-13442)' in #1361
- Backport pr 1393 - Fixed: Fix various display issues in the Order View and Receive Inventory screens for Purchase Orders in #1402
- Fixed: EntityExpr no longer hardcodes the "default" delegator when validating condition types (OFBIZ-5100) in #1420
- Fixed: E-commerce search and product detail no longer leak products across catalogs (OFBIZ-4755) in #1500
- Fixed: Gift card purchase copyMe (BCC purchaser) can never work (OFBIZ-13464) in #1504
- Fixed: OFBizTestCase-based integration tests never run on release24.09 (OFBIZ-13469) in #1513
- Fixed: Gradle build failure in a linked git worktree (OFBIZ-13470) in #1518
- Fixed: Reject shipments mixing ship groups with different destinations (OFBIZ-5346) (backport to release24.09) in #1509
- Fixed: PAssed setIfEmpty True on updating Invoice header and Invoice … in #1536
- Fixed : Child communication event sorting. (OFBIZ-8152) in #1538
- Fixed: MissingMethodException thrown during the execution of the updateProductStore service when attempting to expire existing facilities. (OFBIZ-13472) in #1539
- Fixed: PDF upload accepted embedded attachments when ZUGFeRD upload was disabled (OFBIZ-13485) (backport to release24.09) in #1574
- Fixed: URLConnector.openUntrustedConnection(...) public overloads silently performed trusted SSL connections (OFBIZ-13484) in #1570
- Fixed: Remove HOSTCERT_MIN_CHECK from SSLUtil (OFBIZ-13482) (backport to release24.09) in #1560
- Fixed: Broken javamail-container sample in ofbiz-component.xml in #1551
- Fixed: sendFailureNotification NPEs on default sendFrom, masking the original SMTP error (OFBIZ-13477) in #1549
- Fixed: MultiTrustManager doing flat cert-equality checks instead of real X.509 chain validation (OFBIZ-13476) in #1546
- Fixed: isExecutable() mime-type comparisons never matched Tika's actual types (OFBIZ-13486) in #1585
- Fixed: isExecutable() missed Tika's ELF sub-types, letting real Linux binaries through the check (OFBIZ-13486) in #1601
- Fixed: HashMaps are not properly rendered in FTL with current FTL integration (OFBIZ-13164) in #1616
- Fixed: noWebshellInMetadata NPEs when readMetadata can't parse the file in #1623
- Fixed: distTar/distZip ships unused Node.js runtime caches, bloating the distribution archive (OFBIZ-13491) in #1631
- Fixed: ControlFilter's FreeMarker-interpolation guard was unreachable due to fail-open security check (OFBIZ-13492) in #1642
- Fix webtools Run Suite/Run Case: missing prerequisites and shared ambient transaction (#1655) in #1656
- Fixed: TaxAuthority lookup allows selecting parties without the TaxAuthority role (OFBIZ-12374) in #1697
- Fix content visibility check in help screens (#1703) in #1705
- Fixed: jQuery 4.0 migration broke legacy API usage in common-theme (OFBIZ-13510) in #1830
- Fixed: jGrowl toast messages use wrong readmore-js option (OFBIZ-13512) in #1832
- Fixed: Legacy jQuery.noConflict() in imagemanagement templates breaks common-theme JS (OFBIZ-13513) in #1834
- Fixed: Service dispatcher local context race causes intermittent NullPointerException (OFBIZ-13508) in #1822
- Fixed: EntityEcaUtil cache-rebuild race under concurrent Delegator construction (OFBIZ-13517) in #1840
- Fixed: addOrderShipmentToShipment/getQuantityForShipment broken since the minilang-to-Groovy conversion (OFBIZ-13521) in #1854
- Fixed: createOrderShipmentPlan leaks order items across ship groups (OFBIZ-13520) in #1853
- Fixed: CategoryContentServicesScript related-URL, SEO, and download-update regressions (OFBIZ-13548) in #1863
- Fixed: createInvoiceItemPayrol crashes on Deduction/Tax amount entry (OFBIZ-13561) in #1865
- Fixed: checkContentOperationSecurity crashes when content has a purpose assigned (OFBIZ-13535) in #1867
- Fixed: ProductServices group-order, discontinuation, and review regressions (OFBIZ-13537) in #1869
- Fixed: quickShipEntireOrder calls undefined errorMessage() instead of error() (OFBIZ-13564) in #1872
- Fixed: ContentServices status-transition and content-creation regressions (OFBIZ-13540) in #1873
- Fixed: CommunicationEventServices sender/recipient and status regressions (OFBIZ-13542) in #1880
- Fixed: CheckoutServices anonymous-checkout party reattachment and createUpdatePerson new-party-id regressions (OFBIZ-13544) in #1882
- Fixed: updateBlogEntry checks the wrong field for existing article text (OFBIZ-13545) in #1884
- Fixed: updatePartyInvitation crashes when auto-deriving the invitee name (OFBIZ-13553) in #1886
- Fixed: createUpdateCustomerAndShippingAddress leaves shipToAddressCtx.partyId stale after a new party is created (OFBIZ-13565) in #1890
- Fixed: TaxAuthorityServices tax-ID validation and update regressions (OFBIZ-13555) in #1888
- Fixed: voidPayment throws on a non-invoice payment application (OFBIZ-13560) in #1894
- Fixed: lookupParty crashes on empty search criteria (OFBIZ-13556) in #1892
- Fixed: DataServices content-upload and data-resource regressions (OFBIZ-13562) in #1898
- Fixed: duplicateCategoryEntities throws GroovyCastException (OFBIZ-13563) in #1901
- Fixed: createQuoteFromCart duplicates QuoteAdjustment records (OFBIZ-13525) in #1904
- Fixed: Quote service permission checks don't match original design (OFBIZ-13526) in #1906
- Fixed: productPriceGenericPermission ignores its own sub-check result (OFBIZ-13538) in #1908
- Fixed: Party permission-check helper methods use incorrect logic (OFBIZ-13541) in #1911
- Fixed: straightLineDepreciation uses wrong field for elapsed years (OFBIZ-13524) in #1913
- Fixed: findCustomTimePeriods thruDate boundary and exclude flag (OFBIZ-13527) in #1915
- Fixed: getFXConversion fails instead of defaulting to 1 when no rate configured (OFBIZ-13531) in #1917
- Fixed: hasValidStateProvince returns String but declared Map (OFBIZ-13533) in #1919
- Fixed: PartyServices contact-lookup and role-hierarchy regressions (OFBIZ-13534) in #1922
- Fixed: Correct portlet sequence drag and drop boundaries and calculation (OFBIZ-13528) in #1924
- Fixed: convertUom custom parameters and rounding regressions (OFBIZ-13530) in #1932
- Fixed: filterRateAmountList sequential filtering and fallback behavior (OFBIZ-13543) in #1934
- Fixed: createMissingCategoryAndProductAltUrls default parameter handling (OFBIZ-13539) in #1936
- Fixed: createLead person creation guard for company-only leads (OFBIZ-13549) in #1938
- Fixed: getProductRouting virtual product variant date filtering (OFBIZ-13550) in #1940
- Fixed: getSystemInfoStatus open communication events condition (OFBIZ-13551) in #1942
- Fixed: sendOrderDeliveryScheduleNotification malformed from address (OFBIZ-13552) in #1944
- Fixed: applyFeatureToProductFromTypeAndCode sequenceNum mutation (OFBIZ-13554) in #1947
- Fixed: updateBudgetStatus silent success on invalid status transitions (OFBIZ-13558) in #1949
- Fixed: copyAgreement silent success when agreement does not exist (OFBIZ-13559) in #1951
- Fixed: createFacilityLocation locationSeqId collision fallback regression (OFBIZ-13557) in #1953
- Fixed: PortalPageMethods portlet attribute saving and page copying regressions (OFBIZ-13568) in #1955
- Fixed: Mini-lang to Groovy regressions in InvoiceServicesScript (OFBIZ-13569) in #1957
- Fixed: Mini-lang to Groovy regressions in CommonServicesScript (OFBIZ-13570) in #1959
- Fixed: error in creating category image content. (OFBIZ-12011) in #1695
- Fixed: Mini-lang to Groovy regressions in QuoteServicesScript (OFBIZ-13571) in #1961
- Fixed: MiniLang to Groovy conversion issues in ContactMechServicesScript (OFBIZ-13572) in #1964
- Fixed: Mini-lang to Groovy regressions in InvoiceServicesScript (OFBIZ-13575) in #1970
- Fixed: updateBudgetStatus invalid-transition error omits the requested status (OFBIZ-13558) in #1972
- Fixed: Mini-lang to Groovy regressions in ProductStoreServices (OFBIZ-13576) in #1975
- Fixed: Mini-lang to Groovy regressions in InventoryIssueServices (OFBIZ-13577) in #1977
- Fixed: Mini-lang to Groovy regressions in ShoppingListServicesScript (OFBIZ-13579) in #1979
- Fixed: Mini-lang to Groovy regressions in PortalPageServices (OFBIZ-13580) in #1981
- Fixed: Mini-lang to Groovy regressions in EmailServicesScript (OFBIZ-13581) in #1983
- Fixed: Timing-dependent deadlock-retry test in service engine (OFBIZ-13585) in #1989
- Fixed: updateContentPermission grants UPDATE via ancestor ownership without an ownership change request (OFBIZ-13592) in #1997
- Fixed: Six regressions in the minilang-to-Groovy conversion of PaymentServices.groovy (OFBIZ-13596) in #1999
- Fixed: createEmailAddress and updateEmailAddress accept blank email addresses (OFBIZ-13582) in #2002
- Fixed: Two regressions in the minilang-to-Groovy conversion of CommonServicesScript.groovy (OFBIZ-13583) in #2004
- Fixed: createUpdateBillingAddressAndPaymentMethod throws NPE for anonymous checkout (OFBIZ-13584) in #2007
- Fixed: updatePartyRate does not persist expiry of the previous rate (OFBIZ-13590) in #2013
- Fixed: Two regressions in the minilang-to-Groovy conversion of ContentServicesScript.groovy (OFBIZ-13589) in #2009
- Fixed: setCommEventRoleToRead and setCommunicationEventRoleStatus throw NPE when no role exists (OFBIZ-13591) in #2016
- Fixed: Four regressions in the minilang-to-Groovy conversion of PartyServicesScript.groovy (OFBIZ-13593) in #2019
- Fixed: getLastSystemInfoNote off-by-one on note 2 and note 3 thresholds (OFBIZ-13586) in #2021
- Fixed: checkInvoiceStatusInProgress loses its specific error messages (OFBIZ-13587) in #2023
- Fixed: setPortalPortletAttributes doesn't clean up blank attribute values (OFBIZ-13588) in #2027
- Fixed: updatePartyInvitation silently no-ops on a nonexistent record (OFBIZ-13594) in #2030
- Fixed: accAndDecPartyInvitationPermissionCheck shows the wrong error message on an identity mismatch (OFBIZ-13595) in #2032
- Fixed: Two regressions in saveExtFileDataResource's handling of a missing DataResource (OFBIZ-13597) in #2034
- Fixed: Three regressions in the minilang-to-Groovy conversion of PaymentServices.groovy (OFBIZ-13600) in #2052
- Fixed: Multiple regressions and one pre-existing bug in WorkEffortServicesScript.groovy (OFBIZ-13601) in #2054
- Fixed: visualThemePermissionCheck() checks a permission ID that doesn't exist (OFBIZ-13602) in #2057
- Fixed: createFuturePeriod() crashes with NullPointerException when CustomTimePeriod SystemProperty config is missing (OFBIZ-13604) in #2061
- Fixed: PBKDF2 password verification always fails in HashCrypt.doComparePbkdf2 (OFBIZ-13609) in #2104
- Fixed: Two regressions in the minilang-to-Groovy conversion of CommonServicesScript.groovy (OFBIZ-13610) in #2106
- Fixed: Three regressions in the minilang-to-Groovy conversion of PortalPageServices.groovy (OFBIZ-13611) in #2108
- Fixed: HashCrypt compares non-PBKDF2 password hashes with variable-time String.equals() (OFBIZ-13615) in #2110
- Fixed: Regression in the minilang-to-Groovy conversion of ProductStoreServices.groovy (OFBIZ-13613) in #2114
- Fixed: Regression in the minilang-to-Groovy conversion of ContactMechServicesScript.groovy (OFBIZ-13612) in #2112
- Fixed: Regression in the minilang-to-Groovy conversion of InventoryIssueServices.groovy (OFBIZ-13614) in #2116
- Fixed: Two regressions in the minilang-to-Groovy conversion of PriceServicesScript.groovy (OFBIZ-13616) in #2118
- Fixed: DELETE statements built from EntityCondition inlined values as SQL literals instead of binding them (OFBIZ-13620) in #2120
- Fixed: Three regressions in the minilang-to-Groovy conversion of CostServices.groovy (OFBIZ-13617) in #2122
- Fixed: Two regressions in the minilang-to-Groovy conversion of ProductionRunServicesScript.groovy (OFBIZ-13618) in #2124
- Fixed: Regressions in the minilang-to-Groovy conversion of OrderReturnServicesScript.groovy (OFBIZ-13619) in #2126
- Backport pr 2062 - Fix path interpretation for windows machines (#2062) in #2127
- Fixed: Six regressions in the minilang-to-Groovy conversion of ProductServicesScript.groovy (OFBIZ-13621) in #2144
- Fixed: Two regressions in the minilang-to-Groovy conversion of ContentServicesScript.groovy (OFBIZ-13622) in #2146
- Fixed: Two missing null-guards in CommunicationEventServicesScript.groovy (OFBIZ-13623) in #2152
- Fixed: getBlogEntry() only returns templateDataResourceId for posts with an image (OFBIZ-13624) in #2154
- Fixed: uploadProductImages() silently drops every image after the first populated slot (OFBIZ-13625) in #2156
- Fixed: viewContentPermission() never propagates roleEntity/roleEntityField (OFBIZ-13626) in #2158
- Fixed: followPartyRelationshipsInline() silently returns zero relationships instead of unrestricted (OFBIZ-13627) in #2160
- Backport: Fix webtools ProgramExport, Cache Maintenance and Thread List; normalise the ProgramExport pattern list (#1845) in #2175
- Fixed: Do not evaluate the expand/collapse link of tree widgets as an expression (OFBIZ-13639) in #2192
- Fixed: Do not evaluate a request parameter as an expression in the return-user-message from-field (OFBIZ-13640) in #2194
- Fixed: Do not evaluate the Ajax update area string of forms twice as an expression (OFBIZ-13641) in #2196
- Fixed: Do not evaluate the values of the callback token of forms as expressions (OFBIZ-13642) in #2199
- Fixed: Do not evaluate the area id and target of the Ajax update areas of forms twice as an expression (OFBIZ-13643) in #2201
- Fixed: Keep the redirection of a path alias to its aliasTo on the web site (OFBIZ-13645) in #2205
- Fixed: Enforce the allowed types of the XStream deserialization in UtilXml (OFBIZ-13647) in #2209
- Fixed: Escape the backslash and the braces in the macro strings of the menu, tree and form renderers (OFBIZ-13649) in #2220
- Fixed: Reject untrusted certificates in MultiTrustManager when the all-trusted properties are missing or empty (OFBIZ-13654) in #2230
- Fixed: Navigate Accounts fails with a NullPointerException when no glAccountId is given (OFBIZ-13651) in #2227
- Fixed: Call to non-existing method in production run PDF reports (OFBIZ-13504) [release24.09] in #1828
- Fixed: Do not request the non-existent jquery-validation messages_en.js on every page (OFBIZ-13652) in #2228
- Fixed: Remove the unused viewprofile request of the accounting webapp, which fails with an error page (OFBIZ-13653) in #2229
- Fixed: The phone extension entered when creating an SFA account or lead is silently dropped (OFBIZ-13657) in #2234
- Fixed: Converted Groovy scripts read configuration with UtilProperties, ignoring SystemProperty overrides the original mini-lang honoured (OFBIZ-13655) in #2236
- Fixed: Regressions in CategoryServicesScript.groovy introduced by the mini-lang conversion (OFBIZ-13659) in #2242
- Fixed: Regressions in ShipmentServices.groovy introduced by the mini-lang conversion (OFBIZ-13661) in #2246
- Fixed: Regressions in QuoteServicesScript.groovy introduced by the mini-lang conversion (OFBIZ-13660) in #2244
- Fixed: Regressions in ShoppingListServicesScript.groovy introduced by the mini-lang conversion (OFBIZ-13662) in #2250
- Fixed: getOrderedSummaryInformation ignores explicit fromDate and thruDate (OFBIZ-13664) in #2254
- Fixed: Promo conditions PPIP_ORST_YEAR and PPIP_ORST_LAST_YEAR read the order sub-total from the wrong map (OFBIZ-13667) in #2256
- Fixed: Anonymous ecommerce checkout accepts an arbitrary partyId and lets it be used to overwrite another party's name and attach caller-supplied contact and payment data to that party (OFBIZ-13669) in #2264
- Fixed: Payment method create services accept a caller-supplied paymentMethodId without verifying it belongs to the authorized party (OFBIZ-13671) in #2269
- Fixed: updateContactList does not enforce marketing UPDATE permission (OFBIZ-13672) in #2273
- Fixed: Use of externally-controlled format string in Debug logging utility (backport) in #2280
- Fixed: URL.getFile() used as a filesystem path breaks OFBiz when the install directory contains a space (OFBIZ-13687) in #2317
- Fixed: Allow the content upload directory in the default LOCAL_FILE allow-list (OFBIZ-13689) in #2327
- Fixed: PDF survey services fail to store answers and throw a NullPointerException when no PDF is given (OFBIZ-13688) in #2329
- Fixed: Preserve Webtools theme when editing entities (OFBIZ-12072) in #2261
- Fixed: Survey PDF services read any server file named in the pdfFileNameIn parameter (OFBIZ-13690) in #2332
- Fixed: Survey PDF services throw a NullPointerException when contentId matches no Content (OFBIZ-13692) in #2342
- Fixed: cleanAll deletes the version-controlled package-lock.json files (OFBIZ-13695) in #2344
- Fixed: PDF files with a ZUGFeRD invoice are always rejected on upload in #2350
- Fixed: Encode the source URL of menu, tree and form images in #2366
- Fixed: CodeQL workflow fails while printing debug logs in #2370
- Fixed: Encode the sort links of list forms and check every URL parameter in ControlFilter in #2368
- Fixed: init-gradle-wrapper installs a wrapper jar that does not match the published checksum (OFBIZ-13699) in #2375
- Fixed: Check ownership of the order, payment method and shipping address used by shopping lists (OFBIZ-13701) in #2385
- Fixed: Shopping list permission services check the wrong permission action (OFBIZ-13702) in #2389
- Fixed: First Data config form non-functional and Java integration quality issues (OFBIZ-11837) in #313
- Added: Demo copyMe survey question for gift card purchase (OFBIZ-13464) in #343
- Fixed: myportal login view-map missing auth="false" (OFBIZ-13511) in #388
- Fixed: ProjectServices regressions in date combining and project scheduling (OFBIZ-13529) in #397
- Fixed: FactServices child invoice item filtering and order lookup regressions (OFBIZ-13536) in #399
- Fixed: Multiple regressions in the minilang-to-Groovy conversion of ProjectServicesScript.groovy (OFBIZ-13607) in #416
- Improved: Generate a longer password for the users created by the LinkedIn and GitHub login of the passport plugin (OFBIZ-13658) in #428
- Fixed: Vulnerable source-map-js in example/vite-react-app flagged by Dependabot security alert in #433
- [release24.09] Fixed: Administrator profile on ecommerce shows FTL error (OFBIZ-13475) in #434
- Fixed: Plugin demo DataResources of type LOCAL_FILE are rejected by the LOCAL_FILE allow-list (OFBIZ-13691) in #443
- Fixed: A database error while indexing deletes the product or content from the Lucene index (OFBIZ-13698) in #450
- Fixed: A database error while indexing adds an incomplete product or content document to the Lucene index (OFBIZ-13700) in #452
Improvements
- Improved: Replace commons-imaging with metadata-extractor + TwelveMonkeys ImageIO TIFF plugin (OFBIZ-13507) in #1821
- Improved: Allow testIntegration to run with --portoffset for concurrent test runs (OFBIZ-13518) in #1843
- Improved: javadoc no longer depends on docs.groovy-lang.org at build time (OFBIZ-13566) in #1896
- Improved: Resolve component: locations with ComponentLocationResolver in CommonEvents.openSourceFile and make ComponentConfig.getComponentConfig(String) lookup-only (OFBIZ-13629) in #2165
- Improved: Remove the unused FoPrintServerEvents (OFBIZ-13631) in #2170
- Improved: Build Java explicitly with Gradle in the CodeQL workflow in #2174
- Improved: Return the validated file from SecurityUtil.checkOfbizFileAllowList and use it for the file access (OFBIZ-13632) in #2172
- Improved: Always protect FileUtil.unzipFileToFolder against zip slip (OFBIZ-13633) in #2181
- Improved: Remove the accept-all hostname verifier option from SSLUtil and HttpClient (OFBIZ-13634) in #2183
- Improved: Remove the unused UtilHttp.getAllowAllHttpClient (OFBIZ-13635) in #2185
- Improved: Use SecureRandom to generate promo codes, captcha codes and generated IDs (OFBIZ-13636) in #2187
- Improved: SafeObjectInputStream allowList matches class names as substrings and ships with unescaped dots (OFBIZ-13637) in #2189
- Improved: Keep the area id and target of the update areas of forms as expressions (OFBIZ-13644) in #2203
- Improved: Grant the packages write permission of the docker image workflow to its job (OFBIZ-13646) in #2207
- Improved: Strip the control characters from the Location header of the redirects of RequestHandler and of the SEO forward filters (OFBIZ-13650) in #2222
- Improved: GL-posting and order-completion invoicing commit-ECAs lack run-as-user="system" (OFBIZ-13673) in #2279
- Improved: Bump github/codeql-action/init and analyze from 4.38.2 to 4.38.3 in #2304
- Improved: Label pull requests titled "Bump ..." as dependencies so that the release notes leave them out (OFBIZ-13696) in #2348
- Improved: Set the release_branch label of pull requests automatically (OFBIZ-13696) in #2352
- Improved: Group the security fixes and security hardening in the release notes (OFBIZ-13696) in #2387
New features
- Implemented: Generate release notes with GitHub and label pull requests by type from their title prefix (OFBIZ-13696) in #2346
