Hi,

On Wed, Apr 2, 2014 at 8:25 AM,  <[email protected]> wrote:
> +        //TODO FIXME Temporary workaround for OAK-1666. Override the default
> +        //synchronized map with a Noop. This should be removed when fix
> +        //for JCR-3764 is part of release.
> +        inUse = new NoOpMap<DataIdentifier, WeakReference<DataIdentifier>>();

This breaks the following client:

    Binary binary = session.getValueFactory().createBinary(...);
    // wait over a garbage collection cycle
    session.getRootNode().setProperty("foo", binary);
    session.save();

Note that the wait in between could be anything, in the worst case
just bad timing or more likely some other long-running statements like
waiting for user input or creating other large binaries.

The inUse map is in FileDataStore for a reason. If it's causing
performance issues, the right solution is *not* to just disable it but
rather to figure out how the same functionality could be achieved more
efficiently.

BR,

Jukka Zitting

Reply via email to