[ui] rewrite code in SVGLoader to make it compilable by JDK 11
authorNikolay Chashnikov <Nikolay.Chashnikov@jetbrains.com>
Wed, 12 Aug 2020 16:35:13 +0000 (19:35 +0300)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Wed, 12 Aug 2020 17:09:08 +0000 (17:09 +0000)
SVGOMDocument implements org.w3c.dom.xpath.XPathEvaluator interface from JDK 8 which for some reason isn't included into symbol table of JDK 8 classes in JDK 11. So if we try to pass instance of type SVGOMDocument to 'build' method which accepts Document interface and try to compile it by javac from Java 11 with '-release 8' option, javac processes super-classes of SVGOMDocument and fails with "org.w3c.dom.xpath.XPathEvaluator". After this change javac don't need to process super-classes of SVGOMDocument so code compiles fine. This is needed to be able to compile intellij.platform.util.ui module using JDK 11 (IDEA-248086).

GitOrigin-RevId: 9e6adf2ee930be9dbbc399761211e4b858990330

platform/util/ui/src/com/intellij/util/SVGLoader.java

index e6c67f2c112fa544958ea79d87a8ee89c9959304..8383b17f58b6a2ef1cb2677ece534c25105ea49b 100644 (file)
@@ -270,8 +270,8 @@ public final class SVGLoader {
   }
 
   private static ImageLoader.Dimension2DDouble getDocumentSize(double scale, @NotNull TranscoderInput input) {
-    SVGOMDocument document = (SVGOMDocument)input.getDocument();
-    BridgeContext ctx = new MyTranscoder(scale).createBridgeContext(document);
+    Document document = input.getDocument();
+    BridgeContext ctx = new MyTranscoder(scale).createBridgeContext((SVGOMDocument)document);
     new GVTBuilder().build(ctx, document);
     Dimension2D size = ctx.getDocumentSize();
     return new ImageLoader.Dimension2DDouble(size.getWidth() * scale, size.getHeight() * scale);