mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-08-11 13:48:37 +02:00
double-checked locking for thread safety in MIME utility initialization
This commit is contained in:
parent
b7815fff33
commit
c5eee8cad9
@ -1301,8 +1301,7 @@ public class EmlToPdf {
|
||||
Object attachmentContent = getContent.invoke(part);
|
||||
byte[] attachmentData = null;
|
||||
|
||||
if (attachmentContent instanceof InputStream) {
|
||||
InputStream inputStream = (InputStream) attachmentContent;
|
||||
if (attachmentContent instanceof InputStream inputStream) {
|
||||
// Enhanced stream handling with EOF protection
|
||||
try (InputStream stream = inputStream) {
|
||||
attachmentData = stream.readAllBytes();
|
||||
@ -1891,7 +1890,11 @@ public class EmlToPdf {
|
||||
}
|
||||
|
||||
if (!mimeUtilityChecked) {
|
||||
initializeMimeUtilityDecoding();
|
||||
synchronized (EmlToPdf.class) {
|
||||
if (!mimeUtilityChecked) {
|
||||
initializeMimeUtilityDecoding();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mimeUtilityDecodeTextMethod != null) {
|
||||
@ -1904,11 +1907,7 @@ public class EmlToPdf {
|
||||
return decodeMimeHeader(headerValue.trim());
|
||||
}
|
||||
|
||||
private static synchronized void initializeMimeUtilityDecoding() {
|
||||
if (mimeUtilityChecked) {
|
||||
return; // Already initialized
|
||||
}
|
||||
|
||||
private static void initializeMimeUtilityDecoding() {
|
||||
try {
|
||||
Class<?> mimeUtilityClass = Class.forName("jakarta.mail.internet.MimeUtility");
|
||||
mimeUtilityDecodeTextMethod = mimeUtilityClass.getMethod("decodeText", String.class);
|
||||
|
Loading…
Reference in New Issue
Block a user