in intellij-plugin-structure/structure-classes/src/main/java/com/jetbrains/plugin/structure/classes/resolvers/AbstractJarResolver.kt [42:69]
override fun resolveExactPropertyResourceBundle(baseName: String, locale: Locale): ResolutionResult<PropertyResourceBundle> {
if (baseName !in bundleNames) {
return ResolutionResult.NotFound
}
val control = ResourceBundle.Control.getControl(ResourceBundle.Control.FORMAT_PROPERTIES)
val bundleName: String = control.toBundleName(baseName, locale)
val resourceName: String = control.toResourceName(bundleName, "properties")
return try {
val propertyResourceBundle = readPropertyResourceBundle(resourceName) ?: return ResolutionResult.NotFound
return ResolutionResult.Found(propertyResourceBundle, fileOrigin)
} catch (e: IOException) {
failedToRead(resourceName, e, "I/O error")
} catch (e: NullPointerException) {
failedToRead(resourceName, e, "Stream is null")
} catch (e: IllegalArgumentException) {
failedToRead(resourceName, e, "Stream contains malformed Unicode sequences")
} catch (e: MalformedInputException) {
failedToRead(resourceName, e, "Stream contains an invalid UTF-8 sequence")
} catch (e: UnmappableCharacterException) {
failedToRead(resourceName, e, "Stream contains an unmappable UTF-8 sequence")
} catch (e: Exception) {
e.rethrowIfInterrupted()
ResolutionResult.Invalid(e.message ?: e.javaClass.name)
}
}