client: synchronize some calls to ImageIO.read()

ImageIO is not thread safe, see also 054dd4852d
This commit is contained in:
Adam
2020-03-16 17:37:10 -04:00
parent 43998972cf
commit 491e837207
3 changed files with 11 additions and 8 deletions

View File

@@ -292,7 +292,11 @@ public class DiscordPlugin extends Plugin
}
final InputStream inputStream = response.body().byteStream();
final BufferedImage image = ImageIO.read(inputStream);
final BufferedImage image;
synchronized (ImageIO.class)
{
image = ImageIO.read(inputStream);
}
memberById.setAvatar(image);
}
finally

View File

@@ -33,12 +33,10 @@ import java.awt.Font;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.ConnectException;
import java.net.UnknownHostException;
import java.security.GeneralSecurityException;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
@@ -52,8 +50,9 @@ import javax.swing.border.EmptyBorder;
import lombok.extern.slf4j.Slf4j;
import net.runelite.client.RuneLite;
import net.runelite.client.RuneLiteProperties;
import net.runelite.client.util.VerificationException;
import net.runelite.client.util.ImageUtil;
import net.runelite.client.util.LinkBrowser;
import net.runelite.client.util.VerificationException;
@Slf4j
public class FatalErrorDialog extends JDialog
@@ -82,7 +81,7 @@ public class FatalErrorDialog extends JDialog
try
{
BufferedImage logo = ImageIO.read(SplashScreen.class.getResourceAsStream("runelite_transparent.png"));
BufferedImage logo = ImageUtil.getResourceStreamFromClass(FatalErrorDialog.class, "runelite_transparent.png");
setIconImage(logo);
JLabel runelite = new JLabel();
@@ -92,7 +91,7 @@ public class FatalErrorDialog extends JDialog
runelite.setOpaque(true);
rightColumn.add(runelite);
}
catch (IOException e)
catch (RuntimeException e)
{
}

View File

@@ -33,7 +33,6 @@ import java.awt.image.BufferedImage;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import javax.annotation.Nullable;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
@@ -46,6 +45,7 @@ import javax.swing.border.EmptyBorder;
import javax.swing.plaf.basic.BasicProgressBarUI;
import lombok.extern.slf4j.Slf4j;
import net.runelite.client.ui.skin.SubstanceRuneLiteLookAndFeel;
import net.runelite.client.util.ImageUtil;
import org.pushingpixels.substance.internal.SubstanceSynapse;
@Slf4j
@@ -68,7 +68,7 @@ public class SplashScreen extends JFrame implements ActionListener
private SplashScreen() throws IOException
{
BufferedImage logo = ImageIO.read(SplashScreen.class.getResourceAsStream("runelite_transparent.png"));
BufferedImage logo = ImageUtil.getResourceStreamFromClass(SplashScreen.class, "runelite_transparent.png");
setTitle("RuneLite Launcher");