Skip to content

Commit 818b213

Browse files
committed
Don't fail svg icon painting if svg is malformed
1 parent d47f61c commit 818b213

File tree

1 file changed

+6
-5
lines changed
  • property-loader/src/main/java/com/github/weisj/darklaf/properties/icons

1 file changed

+6
-5
lines changed

property-loader/src/main/java/com/github/weisj/darklaf/properties/icons/DarkSVGIcon.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,21 +152,22 @@ protected void updateCache(final boolean update, final Component c) {
152152
@Override
153153
public Image createImage(final Dimension size) {
154154
ensureLoaded(false);
155+
BufferedImage bi = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_ARGB);
156+
Graphics2D g = (Graphics2D) bi.getGraphics();
155157
try {
156-
BufferedImage bi = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_ARGB);
157-
Graphics2D g = (Graphics2D) bi.getGraphics();
158158
g.setRenderingHint(
159159
RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
160160
g.setRenderingHint(
161161
RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE);
162162
Object aaHint = UIManager.get(RenderingHints.KEY_TEXT_ANTIALIASING);
163163
if (aaHint != null) g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, aaHint);
164164
svgDocumentHolder.svgDocument.render(null, g, new ViewBox(0, 0, size.width, size.height));
165-
g.dispose();
166-
return bi;
167165
} catch (final RuntimeException e) {
168-
throw new RuntimeException("Exception while painting '" + getURI().toASCIIString() + "'.", e);
166+
LOGGER.log(Level.SEVERE, "Exception while painting '" + getURI().toASCIIString() + "'.", e);
167+
} finally {
168+
g.dispose();
169169
}
170+
return bi;
170171
}
171172

172173
protected String getName(final URI uri) {

0 commit comments

Comments
 (0)