Community
Participate
Working Groups
There are places that call IEnvironment.save() with the serialize flag set to false, meaning "cache the IR but don't write to disk". Unfortunately with the current API this propagates to another save() method with the boolean flag gone, and in its place is an IObjectStore. If the store is null, then we just cache it, otherwise we write to disk using the store. The problem is that the builder has object stores that hold onto their own caches. We need the store so that we can tell it to cache the part. Otherwise it gets cached in the map from AbstractEnvironment. However we don't want the store to write it to disk. One thought is maybe we could use the key to locate the appropriate store - and if no stores "own" that part, then it would fall back on super's implementation.
Fixed the following files: IFileSystemObjectStore.java ProjectBuildPathEntry.java ProjectIREnvironment.java AbstractEnvironment.java CachingObjectStore.java ZipFileObjectStore.java
Verified