fix after merge
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Wed, 13 Jul 2016 13:30:18 +0000 (15:30 +0200)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Wed, 13 Jul 2016 13:30:18 +0000 (15:30 +0200)
lib/annotations/jdk/java/nio/file/annotations.xml
platform/configuration-store-impl/src/SchemeManagerImpl.kt

index 4fc7d46c809e99c961f9d69efcfb5adbb0ac36af..b2f518030daa1847b2452cea91fe65478da61514 100644 (file)
@@ -2,6 +2,9 @@
   <item name='java.nio.file.FileSystem java.nio.file.Path getPath(java.lang.String, java.lang.String...)'>
     <annotation name='org.jetbrains.annotations.NotNull'/>
   </item>
+  <item name='java.nio.file.Files java.io.InputStream newInputStream(java.nio.file.Path, java.nio.file.OpenOption...)'>
+    <annotation name='org.jetbrains.annotations.NotNull'/>
+  </item>
   <item name='java.nio.file.Files java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.nio.file.OpenOption...)'>
     <annotation name='org.jetbrains.annotations.NotNull'/>
   </item>
index 3805363c76e30b35a4975f35608745934171aac5..024dca04540776ee4ceab9eaad4d1f5cb54cbb22 100644 (file)
@@ -291,7 +291,7 @@ class SchemeManagerImpl<T : Scheme, MUTABLE_SCHEME : T>(val fileSpec: String,
           }
 
           catchAndLog(file.fileName.toString()) { filename ->
-            file.inputStream()?.use { loadScheme(filename, it, true) }
+            file.inputStream().use { loadScheme(filename, it, true) }
           }
         }
       }
@@ -362,11 +362,23 @@ class SchemeManagerImpl<T : Scheme, MUTABLE_SCHEME : T>(val fileSpec: String,
 
     override fun updateDigest() {
       schemeToInfo.forEachEntry({ k, v ->
-        if (v !== externalInfo) {
-          return@forEachEntry true
-        }
+                                  if (v !== externalInfo) {
+                                    return@forEachEntry true
+                                  }
+
+                                  @Suppress("UNCHECKED_CAST")
+                                  try {
+                                    externalInfo.digest = (processor.writeScheme(k as MUTABLE_SCHEME) as Element).digest()
+                                  }
+                                  catch (e: WriteExternalException) {
+                                    LOG.error("Cannot update digest", e)
+                                  }
+                                  false
+                                })
+    }
+  }
 
-  private fun loadScheme(fileName: CharSequence, input: InputStream, duringLoad: Boolean): E? {
+  private fun loadScheme(fileName: CharSequence, input: InputStream, duringLoad: Boolean): MUTABLE_SCHEME? {
     val extension = getFileExtension(fileName, false)
     if (duringLoad && filesToDelete.isNotEmpty() && filesToDelete.contains(fileName.toString())) {
       LOG.warn("Scheme file \"$fileName\" is not loaded because marked to delete")