Rafael Winterhalter
Rafael Winterhalter
Super. Merged!
I am wondering. In: liquibase.getDatabaseChangeLog().getChangeSets().stream().map(changeSet -> new ChangeSetInfo( changeSet.getId(), changeSet.getFilePath(), changeSet.getAuthor())).forEach(applied::add); liquibase.listUnexpectedChangeSets(contexts, labelExpression).stream().map(changeSet -> new ChangeSetInfo( changeSet.getId(), changeSet.getChangeLog(), changeSet.getAuthor())).forEach(unexpected::add); Will `changeSet.getFilePath()` be the same as `changeSet.getChangeLog()`? Before I called `changeSet.getChangeSet().getFilePath()`,...
Not sure what you mean. The agent builder uses the factory to inject auxiliary types. Of course you can also use it directly.
Did you take a thread dump? Maybe you intercept a method and invoke the proxy again? Or you lock the same object from different threads.
You can use *jps* to find it.
Are those processes short lived? If so, it's hard to hit a target. Maybe you should change `JAVA_TOOL_OPTIONS` to add your agent when any Java process is starting up?
What filtering do you mean?
You combine all these matchers. You likely want to use `.or` which implies that any condition holds.
I am not sure if I understand what you mean. But you can `repeatOn` in exit advice, so you would be able to invoke the original method again if you...