diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java index 2eb9959be9f9..471f96894c78 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java @@ -103,8 +103,9 @@ public class VirtualDirectoryImpl extends VirtualFileSystemEntry { // do not extract getId from under the synchronized block since it will cause a concurrency problem. int id = ourPersistence.getId(this, name); if (id > 0) { - NewVirtualFile child = createChild(name, id); - map.put(name, child); + final String shorty = new String(name); + NewVirtualFile child = createChild(shorty, id); // So we don't hold whole char[] buffer of a lengthy path + map.put(shorty, child); return child; } }