CharsetEncoder is not thread safe.

This commit is contained in:
modmuss50
2025-11-09 14:00:42 +00:00
parent 1a70c3703b
commit 739e124f26

View File

@@ -61,7 +61,6 @@ import net.fabricmc.loom.util.Constants;
import net.fabricmc.loom.util.Platform; import net.fabricmc.loom.util.Platform;
public abstract class AbstractRunTask extends JavaExec { public abstract class AbstractRunTask extends JavaExec {
private static final CharsetEncoder ASCII_ENCODER = StandardCharsets.US_ASCII.newEncoder();
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractRunTask.class); private static final Logger LOGGER = LoggerFactory.getLogger(AbstractRunTask.class);
@Inject @Inject
@@ -132,8 +131,10 @@ public abstract class AbstractRunTask extends JavaExec {
} }
private boolean canPathBeASCIIEncoded() { private boolean canPathBeASCIIEncoded() {
return ASCII_ENCODER.canEncode(getProject().getProjectDir().getAbsolutePath()) CharsetEncoder asciiEncoder = StandardCharsets.US_ASCII.newEncoder();
&& ASCII_ENCODER.canEncode(getProject().getGradle().getGradleUserHomeDir().getAbsolutePath());
return asciiEncoder.canEncode(getProject().getProjectDir().getAbsolutePath())
&& asciiEncoder.canEncode(getProject().getGradle().getGradleUserHomeDir().getAbsolutePath());
} }
@Override @Override