|
10 | 10 | #set($ghbug = 'https://github.com/tada/pljava/issues/') |
11 | 11 | #set($ghpull = 'https://github.com/tada/pljava/pull/') |
12 | 12 |
|
| 13 | +$h2 PL/Java 1.6.10 |
| 14 | + |
| 15 | +This is the tenth minor update in the PL/Java 1.6 series. It adds support |
| 16 | +for building and running with Java 25 and with PostgreSQL 18, and improvements |
| 17 | +to exception handling and logging that should be helpful in debugging the common |
| 18 | +developer mistake of catching a PostgreSQL exception and proceeding without |
| 19 | +rolling back to a prior savepoint. Further information on the changes |
| 20 | +may be found below. |
| 21 | + |
| 22 | +When run on Java 24 or later, there is no security policy enforcement; please |
| 23 | +review the release notes below for PL/Java 1.6.9 for more detail on that. |
| 24 | + |
| 25 | +$h3 Version compatibility |
| 26 | + |
| 27 | +PL/Java 1.6.10 can be built against recent PostgreSQL versions including 18, and |
| 28 | +older ones back to 9.5, using Java SE 9 or later. The Java version used at |
| 29 | +runtime does not have to be the same version used for building. PL/Java itself |
| 30 | +can run on any Java version 9 or later, but for security policy enforcement the |
| 31 | +runtime Java version must be 23 or earlier. PL/Java functions can be |
| 32 | +written for, and use features of, whatever Java version will be loaded at run |
| 33 | +time. See [version compatibility][versions] for more detail. |
| 34 | + |
| 35 | +$h3 Changes |
| 36 | + |
| 37 | +$h4 Runtime |
| 38 | + |
| 39 | +$h5 Exception-handling and logging improvements for mishandled exceptions |
| 40 | + |
| 41 | +When a PL/Java function calls back into PostgreSQL, an exception may be thrown. |
| 42 | +At that point, there are two things a PL/Java function may legitimately do: |
| 43 | +it may re-throw the exception (or throw some other exception), so that the |
| 44 | +PL/Java function returns exceptionally and PostgreSQL cleans up the transaction, |
| 45 | +or it may roll back to a savepoint that was established before the exception was |
| 46 | +thrown, and then proceed and return non-exceptionally. To catch such an |
| 47 | +exception and simply proceed, without rolling back to a prior savepoint, is |
| 48 | +a common new-developer mistake. |
| 49 | + |
| 50 | +In past PL/Java versions, the troubleshooting for such a common mistake was |
| 51 | +uncommonly difficult, because the mishandling might not be detected until |
| 52 | +PL/Java made some later, even quite unrelated, call back into PostgreSQL, and |
| 53 | +the exception thrown at that point might have no connection to the original |
| 54 | +exception that was mishandled. |
| 55 | + |
| 56 | +PL/Java 1.6.10 adds new exception-handling and logging behavior that should |
| 57 | +greatly simplify debugging such common mistakes. Details are in the new |
| 58 | +documentation section [Catching PostgreSQL exceptions in Java][catch]. |
| 59 | + |
| 60 | +[catch]: use/catch.html |
| 61 | + |
| 62 | +$h3 Bugs fixed |
| 63 | + |
| 64 | +* [ClassNotFoundException using PL/Java 1.6.8 on Postgres 17.2](${ghbug}523) |
| 65 | +* [support for PostgreSQL 18](${ghbug}524) |
| 66 | +* [SQL generator may use non-reproducible order in rare cases](${ghbug}527) |
| 67 | + |
| 68 | +$h3 Credits |
| 69 | + |
| 70 | +Thanks to Achilleas Mantzios for starting on the PostgreSQL 18 changes, `daddeo` |
| 71 | +for making the case to improve the treatment and logging of mishandled |
| 72 | +exceptions. |
| 73 | + |
| 74 | +$h2 Earlier releases |
| 75 | + |
| 76 | +## A nice thing about using Velocity is that each release can be entered at |
| 77 | +## birth using h2 as its main heading, h3 and below within ... and then, when |
| 78 | +## it is moved under 'earlier releases', just define those variables to be |
| 79 | +## one heading level finer. Here goes: |
| 80 | +#set($h2 = '###') |
| 81 | +#set($h3 = '####') |
| 82 | +#set($h4 = '#####') |
| 83 | +#set($h5 = '######') |
| 84 | + |
13 | 85 | $h2 PL/Java 1.6.9 |
14 | 86 |
|
15 | 87 | This is the ninth minor update in the PL/Java 1.6 series. It adds support |
@@ -135,17 +207,6 @@ document debugging arrangements and Java stack traces. |
135 | 207 | [nopolicy]: use/unenforced.html |
136 | 208 | [variables]: use/variables.html |
137 | 209 |
|
138 | | -$h2 Earlier releases |
139 | | - |
140 | | -## A nice thing about using Velocity is that each release can be entered at |
141 | | -## birth using h2 as its main heading, h3 and below within ... and then, when |
142 | | -## it is moved under 'earlier releases', just define those variables to be |
143 | | -## one heading level finer. Here goes: |
144 | | -#set($h2 = '###') |
145 | | -#set($h3 = '####') |
146 | | -#set($h4 = '#####') |
147 | | -#set($h5 = '######') |
148 | | - |
149 | 210 | $h2 PL/Java 1.6.8 (19 October 2024) |
150 | 211 |
|
151 | 212 | This is the eighth minor update in the PL/Java 1.6 series. It adds support |
|
0 commit comments