Hmm... Which ones? I upgraded many others... Including java mail. I use
jakarta.mail 1.6.7 now.

Andrei M.

On Thu, Feb 3, 2022 at 3:25 PM Jean-Baptiste Onofré <j...@nanthrax.net> wrote:

> Hi Andrei,
>
> Did you upgrade only bouncycastle 1.69 or other dependency ?
>
> I remember another deps should be updated.
>
> Regards
> JB
>
> On 03/02/2022 14:09, Andrei Petru Mura wrote:
> > Hi all,
> >
> > I upgraded bouncycastle to 1.69 in karaf. When trying to run this code:
> >
> > MimeBodyPart textPart = new MimeBodyPart();
> > textPart.setContent(new String(body), "text/plain");
> > textPart.setHeader("Content-Type", messageContentType);
> > textPart.setHeader("Content-Transfer-Encoding", "binary");
> > textPart.setHeader("Content-Disposition", "attachment; filename=" +
> > fileName);
> >
> > SMIMESignedGenerator gen = new SMIMESignedGenerator();
> > gen.setContentTransferEncoding("base64");
> > JcaSimpleSignerInfoGeneratorBuilder signerInfoGenerator = new
> > JcaSimpleSignerInfoGeneratorBuilder();
> > signerInfoGenerator = signerInfoGenerator.setProvider("BC");
> > SignerInfoGenerator signerGenerator =
> > signerInfoGenerator.build(alg.algorithmWithRSA(), privateKey,
> certificate);
> > gen.addSignerInfoGenerator(signerGenerator);
> >
> > List<X509Certificate> certList = new ArrayList<X509Certificate>();
> > certList.add(certificate);
> > @SuppressWarnings("rawtypes")
> > Store certs = new JcaCertStore(certList);
> >
> > gen.addCertificates(certs);
> >
> > MimeMultipart signedReport = gen.generate(replyBody);
> > ByteArrayOutputStream out = new ByteArrayOutputStream();
> > mimeMsg.writeTo(out); //the line which gives problems
> > out.close();
> >
> > I get this:
> >
> > javax.activation.UnsupportedDataTypeException: text/plain
> > at javax.activation.DataHandler.writeTo(DataHandler.java:75) ~[!/:2.9.0]
> > at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1670)
> > ~[!/:1.6.7]
> > at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:972)
> > ~[!/:1.6.7]
> > at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:537)
> > ~[!/:1.6.7]
> >
> > Trying to make the long story short, after investigation, I find that BC
> > includes a file at META-INF/mailcap
> > This shouldn't be a problem, but it seems to me that this is a problem.
> >
> > If I try to add the mailcap manually before the above code snippet, like
> > this:
> >
> >    MailcapCommandMap mc = (MailcapCommandMap)
> > CommandMap.getDefaultCommandMap();
> > mc.addMailcap("text/html;;
> > x-java-content-handler=com.sun.mail.handlers.text_html");
> > mc.addMailcap("text/xml;;
> > x-java-content-handler=com.sun.mail.handlers.text_xml");
> > mc.addMailcap("text/plain;;
> > x-java-content-handler=com.sun.mail.handlers.text_plain");
> > mc.addMailcap("multipart/*;;
> > x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
> > mc.addMailcap("message/rfc822;;
> > x-java-content-handler=com.sun.mail.handlers.message_rfc822");
> >
> > it has no effect, although I can see that the command handler is set
> there.
> >
> > After all this investigation, I conclude that this is related to OSGI
> > class loader. Any idea how to fix this or any hints?
> >
> > Thanks,
> > Andrei Mura
>

Reply via email to