From 7afc01654dc6fa817d21ebe540b3f779b9a96777 Mon Sep 17 00:00:00 2001 From: Guillermo Mazzola Date: Thu, 25 Apr 2024 16:05:04 +0200 Subject: [PATCH] Fixed `org.xml.sax.SAXException: FWK005 parse may not be called while parsing` (#16) --- .../io/github/gmazzo/android/manifest/lock/ManifestReader.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugin/src/main/kotlin/io/github/gmazzo/android/manifest/lock/ManifestReader.kt b/plugin/src/main/kotlin/io/github/gmazzo/android/manifest/lock/ManifestReader.kt index 0a0f8d6..035732d 100644 --- a/plugin/src/main/kotlin/io/github/gmazzo/android/manifest/lock/ManifestReader.kt +++ b/plugin/src/main/kotlin/io/github/gmazzo/android/manifest/lock/ManifestReader.kt @@ -12,9 +12,8 @@ import javax.xml.xpath.XPathFactory internal object ManifestReader { private const val ANDROID_NS = "http://schemas.android.com/apk/res/android" - private val docBuilder = DocumentBuilderFactory.newInstance() + private val docBuilderFactory = DocumentBuilderFactory.newInstance() .apply { isNamespaceAware = true } - .newDocumentBuilder() private val xPath = XPathFactory.newInstance().newXPath().apply { namespaceContext = AndroidNamespaceContext } private val getPackageName = xPath.compile("/manifest/@package") @@ -26,7 +25,7 @@ internal object ManifestReader { private val getExports = xPath.compile("//*[@android:exported='true']") fun parse(manifest: File): Manifest { - val source = docBuilder.parse(manifest) + val source = docBuilderFactory.newDocumentBuilder().parse(manifest) val packageName = getPackageName.evaluate(source).takeUnless { it.isBlank() } val minSDK = getMinSDK.evaluate(source).toIntOrNull() val targetSDK = getTargetSDK.evaluate(source).toIntOrNull()