Skip to content

Commit

Permalink
Merge pull request #35780 from zakkak/2023-09-06-fix-35676
Browse files Browse the repository at this point in the history
TransformerFactory not "used" with GraalVM for JDK 21 (23.1)
  • Loading branch information
yrodiere authored Sep 11, 2023
2 parents b2367be + 5d5f6e8 commit a296ae1
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,13 @@ public void verifyJDKXMLParsersAreIncluded() {
report.assertContains(org.postgresql.jdbc.PgSQLXML.class);
report.assertContains(UUIDJdbcType.class);

//And finally verify we included the JDK XML by triggering
//io.quarkus.jdbc.postgresql.runtime.graal.SQLXLMFeature
report.assertContains(javax.xml.transform.TransformerFactory.class);
// And finally verify we included "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl" which is
// the fallback implementation class name used in javax.xml.transform.TransformerFactory.newInstance()
// whose invocation gets triggered when io.quarkus.jdbc.postgresql.runtime.graal.SQLXLMFeature is enabled.
// We cannot use class javax.xml.transform.TransformerFactory directly since delegation to
// the implementation might get inlined, thus resulting in 'javax.xml.transform.TransformerFactory'
// not showing up as a used class in the reports (due to '-H:+InlineBeforeAnalysis').
report.assertContains("com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,14 @@ public void verifyJdkXmlParsersHavebeenEcludedFromNative() {
report.assertContains(org.postgresql.jdbc.PgSQLXML.class);
report.assertContains(UUIDJdbcType.class);

//And finally verify we managed to exclude the JDK XML because of having hinted the analysis
//(See io.quarkus.jdbc.postgresql.runtime.graal.SQLXLMFeature )
// And finally verify we exclude "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl" which is
// the fallback implementation class name used in javax.xml.transform.TransformerFactory.newInstance()
// whose invocation gets triggered when io.quarkus.jdbc.postgresql.runtime.graal.SQLXLMFeature is enabled.
// We cannot only use class javax.xml.transform.TransformerFactory directly since delegation to
// the implementation might get inlined, thus resulting in 'javax.xml.transform.TransformerFactory'
// not showing up as a used class in the reports (due to '-H:+InlineBeforeAnalysis').
report.assertContainsNot(javax.xml.transform.TransformerFactory.class);
report.assertContainsNot("com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl");
}

}

0 comments on commit a296ae1

Please sign in to comment.