ModeShape

Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Tests marked with @SkipLongRunning still run during -Passembly, so ignoring this very resource-intensive load test.

Changed release notes

Reverted version back to SNAPSHOT, which will be set properly during the release process.

    • -2
    • +2
    /boms/modeshape-bom-remote-client/pom.xml
  1. … 51 more files in changeset.
MODE-2123 Changed the code so that new nodes never try to find themselves in the workspace cache.

Also fixed some resulting regressions for specific situations.

MODE-2122 Added some retry logic in case we're reading the parent's ChildReference objects while it is being modified

Most of the time, this shouldn't be a problem. But the changes make the code tolerant of such rare concurrent modifications

by simply retrying. There is almost no extra cost to doing this.

The stress test added in the previous commit used to periodically demonstrate the concurrent modification exception.

After the changes, the exception no longer occurs.

MODE-2121 Corrected the concurrency problem within the LazyCachedNode

A new stress test case was added to have lots of calls to the cached nodes, and this highlighted

a problem in the LazyCachedNode.

Although each LazyCachedNode is (mostly) immutable, there still are a number of fields that

are lazily populated. Before this change, these fields were not being updated in an atomic

and thread-safe fashion. Additionally, these fields were not volatile (or Atomic) and thus

there is no guarantee when or in what order one thread sees the fields updated by another

thread.

Most of the fields are self-contained and idempotent, so they did not pose much of a problem.

However, the "parentReferenceToSelf" method used TWO fields to cache the information,

and if a thread saw only one of these fields after being (correctly) updated by another thread,

the reading thread would see an inconsistent state and the logic would incorrectly return null

for the ChildReference containing this node's name and SNS index.

The solution for most of the fields was simply to make them volatile (for most references that

are simply set) or AtomicReference in the one case where the value is somewhat expensive to

compute if it is not really needed.

The solution for the "parentReferenceToSelf" method was to use a single field with an

AtomicReference to an object that encapsulated the information previously stored in two fields.

This also meant that some of the logic could be encapsulated into this new object, and that

a specialized implementation could be used for the root node's ChildReference to itself

(allowing the other implementation to be simplified). The "parentReferenceToSelf" method

is carefully written to not require any synchronization or locking, and thus it is very

fast. Striclty speaking, at any given instant constructing the cached information is idempotent,

meaning that two nearly-concurrent calls might each have to do all of the work. But in

the end, both calls will see consistent information and only one of the representations will

be kept.

After these changes, the stress test runs quite well (albeit with a lot of memory),

and the previously-reported exception is seen no more.

MODE-2120 Added some checks to prevent duplicate child references from being added/exposed.

MODE-2119 Removed the use of partial deltas in clusters.

Changed release version to 3.6.1-Beta1

    • -2
    • +2
    /boms/modeshape-bom-remote-client/pom.xml
  1. … 51 more files in changeset.
MODE-2118 Changed the GWT Maven plugin usage to use a version property

'Release: update versions for modeshape-3.6.0.Final'

    • -2
    • +2
    /boms/modeshape-bom-remote-client/pom.xml
  1. … 51 more files in changeset.
Updated release notes for 3.6.0.Final

MODE-2061 Updated the FileSystemConnector so that clients can override and provide a better SHA1 implementation for UrlBinaryValues.

MODE-2076 Additional fixes for errors.

MODE-2075 Removed the old RHQ plugin that has not been used for some time.

  1. … 5 more files in changeset.
MODE-2076: Fix exceptions caused by empty path. Fix exception during handling multivalue properties. Improve exception handling

MODE-2072 Corrected the POM

MODE-2072: Implement path reflection in the address bar

    • -0
    • +34
    /web/modeshape-web-explorer/src/main/webapp/Console.css
    • -0
    • +48
    /web/modeshape-web-explorer/src/main/webapp/Console.html
  1. … 34 more files in changeset.
MODE-2072: Changed the web explorer module to be two modules

This is required since the EAP-based explorer WAR file can be built

without the ModeShape libraries, since they are provided in the

subsystem's modules in the kit. However, all of our other WAR modules

under "web" directory all embed the ModeShape libraries. Thus,

this commit splits the "web/modeshape-web-explorer" into two modules:

the "web/modeshape-web-explorer-war" that does not embed the

ModeShape libraries (and which is used by the EAP explorer module)

and the "web/modeshape-web-explorer-war" that does embed the

ModeShape libraries (like the other "web" WAR modules).

    • -0
    • +50
    /web/modeshape-web-explorer-war/pom.xml
    • -6
    • +30
    /web/modeshape-web-explorer/pom.xml
MODE-2074 Fixed the usage of CharSet decoders/encoders by the BsonDataInput/Output classes. Also, fixed the algorithm which reads Bson strings, in the case when those strings are larger than the default buffer size.

    • -0
    • +301
    /modeshape-schematic/src/test/resources/json/sample-large-modeshape-doc3.json
Corrected JavaDoc error

MODE-2061 Changed the FileSystemConnector to no longer compute SHA-1 hashes for external binary values.

MODE-2061 Reverted the use of 'openssl' in the FileSystemConnector

This reverts commit e7ea3fe62b70cf60b73d7ef4ffdd79c52cdb4e0c.

MODE-2071 Corrected NPE in upgraded repository from 3.2

MODE-2073 Fixed the copying of external binary values into internal nodes.

MODE-1752 Made the "chunkSize" property of the InfinispanBinaryStore configurable both via the repository schema and EAP kit. This should allow client to "fine-tune" the storage if desired.

MODE-2017: Implementation for the renaming procedure

MODE-1752 Updated Infinispan Binary Store's ChunkedInputStream to be able to skip directly to a given chunk, without the need of loading intermediary chunks. This is a backwards compatible change, because all the needed information to perform this operation: the size of 1 chunk, the total size and the number of chunks was already present in the system.

MODE-1820 Corrected POM of repository explorer module

MODE-1820: Renamed the 'modeshape-web-console' to 'modeshape-web-explorer' and added it to the EAP kit.

    • -34
    • +0
    /web/modeshape-web-console/war/Console.css
    • -48
    • +0
    /web/modeshape-web-console/war/Console.html
    • binary
    /web/modeshape-web-console/war/favicon.ico
  1. … 110 more files in changeset.