This is an automated email from the ASF dual-hosted git repository. garydgregory pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/commons-xml.git
commit bbe9bb0c21bfad98ffc46a6b863473e1b2d4bd49 Author: Gary Gregory <[email protected]> AuthorDate: Fri Aug 28 15:20:01 2026 -0400 Reduce AI copy-pasta. Broaden utility method exception type. --- .../java/org/apache/commons/xml/MethodHandleFactory.java | 2 +- .../java/org/apache/commons/xml/SecureXPathFactory.java | 14 ++------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/apache/commons/xml/MethodHandleFactory.java b/src/main/java/org/apache/commons/xml/MethodHandleFactory.java index d55b222..9418b60 100644 --- a/src/main/java/org/apache/commons/xml/MethodHandleFactory.java +++ b/src/main/java/org/apache/commons/xml/MethodHandleFactory.java @@ -50,7 +50,7 @@ static MethodHandle findStatic(final Class<?> refc, final String name, final Met } } - static <T, E extends Error> T invokeExact(final ThrowableCallable<T> methodHandle, final Class<E> rethrow) throws E { + static <T, E extends Throwable> T invokeExact(final ThrowableCallable<T> methodHandle, final Class<E> rethrow) throws E { try { return methodHandle.call(); } catch (final Throwable e) { diff --git a/src/main/java/org/apache/commons/xml/SecureXPathFactory.java b/src/main/java/org/apache/commons/xml/SecureXPathFactory.java index 5233865..ff16db4 100644 --- a/src/main/java/org/apache/commons/xml/SecureXPathFactory.java +++ b/src/main/java/org/apache/commons/xml/SecureXPathFactory.java @@ -138,24 +138,14 @@ public void setXPathVariableResolver(final XPathVariableResolver resolver) { */ public static XPathFactory newDefaultInstance() { if (MH_newDefaultInstance != null) { - final XPathFactory factory; - try { - factory = (XPathFactory) MH_newDefaultInstance.invokeExact(); - } catch (final RuntimeException e) { - throw e; - } catch (final Throwable e) { - // Unreachable: the looked-up method declares no other exceptions. - throw new IllegalStateException(e); - } - return secure(factory); + return secure(MethodHandleFactory.invokeExact(() -> (XPathFactory) MH_newDefaultInstance.invokeExact(), RuntimeException.class)); } try { // Java 8: the method does not exist; instantiate the JDK's built-in default by its class name instead. return newInstance(XPathFactory.DEFAULT_OBJECT_MODEL_URI, JDK_XPATH_FACTORY, null); } catch (final XPathFactoryConfigurationException e) { // newDefaultInstance declares no checked exception; mirror XPathFactory.newInstance(), which reports a default-model miss as a RuntimeException. - throw new RuntimeException( - "Neither XPathFactory.newDefaultInstance() nor " + JDK_XPATH_FACTORY + " is available", e); + throw new RuntimeException("Neither XPathFactory.newDefaultInstance() nor " + JDK_XPATH_FACTORY + " is available", e); } }
