EA-32918 (assert for negative file size)
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Thu, 26 Jan 2012 18:15:36 +0000 (22:15 +0400)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Thu, 26 Jan 2012 18:16:08 +0000 (22:16 +0400)
platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/LocalFileSystemBase.java
platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/persistent/PersistentFS.java

index f2ff048a94297ec16994edd34bfba2c644479a51..915ca59e82b805771a3ef388b06d04d815f6b819 100644 (file)
@@ -535,7 +535,9 @@ public abstract class LocalFileSystemBase extends LocalFileSystem {
   public byte[] contentsToByteArray(@NotNull final VirtualFile file) throws IOException {
     final FileInputStream stream = new FileInputStream(convertToIOFileAndCheck(file));
     try {
-      return FileUtil.loadBytes(stream, (int)file.getLength());
+      final int length = (int)file.getLength();
+      assert length >= 0 : file;
+      return FileUtil.loadBytes(stream, length);
     }
     finally {
       stream.close();
index 9623d30cec497a0c8602237b40cd607d28dccff0..9a2de59babeb64bdbe7169f5de7e40ae80fd9a60 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -508,7 +508,9 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent {
     }
     else {
       try {
-        return FileUtil.loadBytes(contentStream, (int)file.getLength());
+        final int length = (int)file.getLength();
+        assert length >= 0 : file;
+        return FileUtil.loadBytes(contentStream, length);
       }
       catch (IOException e) {
         throw FSRecords.handleError(e);