Package: release.debian.org
Severity: normal
Tags: bookworm
X-Debbugs-Cc: [email protected]
Control: affects -1 + src:milib
User: [email protected]
Usertags: pu

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Dear Release Team,

I would like to propose an upload to oldstable for milib.

[ Reason ]
There is a FTBFS bug #1139472 in src:milib, due to an exception that is newly
thrown by a class in libjackson2-databind-java, version 2.14.0. This latter
package has been introduced in unstable and then in stable-p-u and
oldstable-p-u, hence a FTBFS in unstable, stable and oldstable.
The proposed upload fixes this build failure, with the same patch that has been
successfully fixing it in unstable and testing for three weeks.

[ Impact ]
If the update is not approved, the package will go on FTBFS-ing in oldstable
and the program could crash if the newly raised IOException of
jackson-databind is indeed thrown at runtime.

[ Tests ]
The build-time tests run successfully in unstable, stable and oldstable, and
the package has been in testing for three weeks.

[ Risks ]
Honestly, code is trivial as we are just catching one more exception in the
code, nothing else changed.

[ Checklist ]
  [X] *all* changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in oldstable
  [X] the issue is verified as fixed in unstable

[ Changes ]
The change is the application of a patch, which is exactly the one I applied
in unstable in version 2.2.0+dfsg-2.

[ Other info ]
There is a companion bug for the fix in stable.

Thanks a lot for your consideration,

- -- 
Pierre

-----BEGIN PGP SIGNATURE-----

iQJDBAEBCgAtFiEEM8soQxPpC9J9y0UjYAMWptwndHYFAmpb7tkPHHBndEBkZWJp
YW4ub3JnAAoJEGADFqbcJ3R2vdgP/0ZT6Q+nODS2nGmDaU3dDiB7Z9TLaMk7aVsM
n+obbpWUWvIPnVJBJkXGDlz6ylb8Hsqz7Vqs5lwyXNOVRrijyTITIDNB8DcE73uR
GuKGpJzIwyNSH53CIHxPOuUAnKU5B7B5SDhGwToSQshB8fSaqtgIAb4hZ0K35cog
7Qi1cgCtLe7b6HA6JFSy/eWMD31yJnHUT0/d6tbhfiKQ504JvBBwV8o33igc+aT7
PaURYriLoH8QFf/nzRohNM8mPM1RHw85NJ6hWLy4PnVOSL17lIopLB8jb1VQKtFt
Cw3Q3NGv+PtlncvfocW/q1DrroJJ43w3e3q2qaKjnVgPNtvksf9vtXh7Tqw4yP2s
UaITN5wJo21zGnA5nIBYbA7PPFzKFeWv9jI3gHo/J9/z6a8TjKmqmTJWJMX7QDCK
QpHBLFofXaqFz5FnRVb6i1iu4BYKGfcDf9TRJTGwHK2nzrHhGu2+UfgmiIpgAas0
8Ukg042/7NwTDaDav/05DvD6csSkk+X5sWGoXTDoadSqTWcvA1U7vvV4VBWFrqvl
b7Ol2OXoIaGB5GjmX2XWdeYZ6DE4HzglD5rBWiAVt5qOKlZQwJDM+DEvouX1CrfC
MqjTHD55wPY1lBO0PcHbqxxPyT4hVUaVVeBX/d4lp/HFNO9sWIRw0x4cirR+qVx/
ZJ8bsmol
=Ddfq
-----END PGP SIGNATURE-----
diff -Nru milib-2.2.0+dfsg/debian/changelog milib-2.2.0+dfsg/debian/changelog
--- milib-2.2.0+dfsg/debian/changelog   2022-12-30 14:38:35.000000000 +0100
+++ milib-2.2.0+dfsg/debian/changelog   2026-07-17 15:04:38.000000000 +0200
@@ -1,3 +1,9 @@
+milib (2.2.0+dfsg-1+deb12u1) bookworm; urgency=medium
+
+  * Patching code to catch IOException (Closes: #1139472)
+
+ -- Pierre Gruet <[email protected]>  Fri, 17 Jul 2026 15:04:38 +0200
+
 milib (2.2.0+dfsg-1) unstable; urgency=medium
 
   * New upstream version 2.2.0+dfsg
diff -Nru milib-2.2.0+dfsg/debian/patches/series 
milib-2.2.0+dfsg/debian/patches/series
--- milib-2.2.0+dfsg/debian/patches/series      2022-11-14 21:52:46.000000000 
+0100
+++ milib-2.2.0+dfsg/debian/patches/series      2026-07-17 15:04:16.000000000 
+0200
@@ -2,3 +2,4 @@
 guava_interface.patch
 deactivate_test_reading_build_properties.patch
 flaky_test.patch
+uncaught_IOException.patch
diff -Nru milib-2.2.0+dfsg/debian/patches/uncaught_IOException.patch 
milib-2.2.0+dfsg/debian/patches/uncaught_IOException.patch
--- milib-2.2.0+dfsg/debian/patches/uncaught_IOException.patch  1970-01-01 
01:00:00.000000000 +0100
+++ milib-2.2.0+dfsg/debian/patches/uncaught_IOException.patch  2026-07-17 
15:01:02.000000000 +0200
@@ -0,0 +1,84 @@
+Description: catching IOException newly thrown by
+ com.fasterxml.jackson.databind.ObjectMapper
+Author: Pierre Gruet <[email protected]>
+Bug-Debian: https://bugs.debian.org/1139472
+Forwarded: no
+Last-Update: 2026-06-28
+
+--- a/src/main/java/com/milaboratory/util/ReportUtil.java
++++ b/src/main/java/com/milaboratory/util/ReportUtil.java
+@@ -89,6 +89,8 @@
+             return content.getBytes(StandardCharsets.UTF_8);
+         } catch (JsonProcessingException e) {
+             throw new RuntimeException(e);
++        } catch (IOException e) {
++            throw new RuntimeException(e);
+         }
+     }
+ 
+--- a/src/main/java/com/milaboratory/util/GlobalObjectMappers.java
++++ b/src/main/java/com/milaboratory/util/GlobalObjectMappers.java
+@@ -42,7 +42,12 @@
+     private static ObjectMapper PRETTY = null;
+ 
+     public static String toOneLine(Object object) throws 
JsonProcessingException {
+-        String str = 
GlobalObjectMappers.getOneLine().writeValueAsString(object);
++        String str;
++        try {
++            str = GlobalObjectMappers.getOneLine().writeValueAsString(object);
++        } catch (IOException e) {
++            throw new RuntimeException(e);
++        }
+ 
+         if (str.contains("\n"))
+             throw new RuntimeException("Internal error.");
+--- 
a/src/main/java/com/milaboratory/core/alignment/kaligner2/KAlignerParameters2.java
++++ 
b/src/main/java/com/milaboratory/core/alignment/kaligner2/KAlignerParameters2.java
+@@ -21,6 +21,8 @@
+ import com.milaboratory.core.sequence.NucleotideSequence;
+ import com.milaboratory.util.GlobalObjectMappers;
+ 
++import java.io.IOException;
++
+ /**
+  * @author Dmitry Bolotin
+  * @author Stanislav Poslavsky
+@@ -712,6 +714,8 @@
+             return "KAlignerParameters" + 
GlobalObjectMappers.getPretty().writeValueAsString(this);
+         } catch (JsonProcessingException e) {
+             return "Error...";
++        } catch (IOException e) {
++            throw new RuntimeException(e);
+         }
+     }
+ }
+--- 
a/src/main/java/com/milaboratory/core/alignment/AffineGapAlignmentScoring.java
++++ 
b/src/main/java/com/milaboratory/core/alignment/AffineGapAlignmentScoring.java
+@@ -24,6 +24,7 @@
+ import com.milaboratory.core.sequence.Sequence;
+ import com.milaboratory.util.GlobalObjectMappers;
+ 
++import java.io.IOException;
+ import java.io.ObjectStreamException;
+ 
+ /**
+@@ -155,6 +156,8 @@
+             return GlobalObjectMappers.getPretty().writeValueAsString(this);
+         } catch (JsonProcessingException e) {
+             throw new RuntimeException(e);
++        } catch (IOException e) {
++            throw new RuntimeException(e);
+         }
+     }
+ 
+--- 
a/src/main/java/com/milaboratory/core/alignment/kaligner1/KAlignerParameters.java
++++ 
b/src/main/java/com/milaboratory/core/alignment/kaligner1/KAlignerParameters.java
+@@ -630,6 +630,8 @@
+             return "KAlignerParameters" + 
GlobalObjectMappers.getPretty().writeValueAsString(this);
+         } catch (JsonProcessingException e) {
+             return "Error...";
++        } catch (IOException e) {
++            throw new RuntimeException(e);
+         }
+     }
+ }

Reply via email to