brooklyn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From neykov <>
Subject [GitHub] incubator-brooklyn pull request: Compiler independent persistence
Date Thu, 19 Feb 2015 18:42:11 GMT
GitHub user neykov opened a pull request:

    Compiler independent persistence

    The project recently switched from the eclipse-groovy-compiler to the system provided
compiler. It turns out that the compilers generate different indexes for the `this$N` fields
in non-static inner classes. This results in failures when rebinding to a state generated
from a different compiler.
    There is one case where there is not enough information in the XML to figure out the new
names reliably - when a dynamic class extends another dynamic class and the classes have different
this$N field indexes. This is quite rare (we don't have such persisted classes in Brooklyn,
though user code might have), in this case the changes will at least log an error, before
the rebind fails, with instructions on how to update the fields.

You can merge this pull request into a Git repository by running:

    $ git pull compiler-independent-xstream

Alternatively you can review and apply these changes as the patch at:

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #520
commit 88a0545b4b3bab2ad50b170f5bf6a9c49e05970a
Author: Svetoslav Neykov <>
Date:   2015-02-19T12:23:19Z

    Use the eclipse-groovy compiler for .groovy files only.
    Compile non-groovy tests with the same compiler used for the non-test code so tests can
excersize the same code path as used by client code.

commit 17dd72c97f052ec1e74c6b242d2421546c700063
Author: Svetoslav Neykov <>
Date:   2015-02-19T12:26:35Z

    Compiler independent outer class field deserialization
    Different compilers generate different names for the outer class synthetic fields. The
change tries to infer the new name where possible.


If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at or file a JIRA ticket
with INFRA.

View raw message