[MAGNOLIA-4522] Recursive activation does not work with Java 7 Created: 29/Aug/12 Updated: 13/Mar/13 Resolved: 27/Sep/12 |
|
| Status: | Closed |
| Project: | Magnolia |
| Component/s: | activation |
| Affects Version/s: | 4.5.4 |
| Fix Version/s: | 4.5.5 |
| Type: | Improvement | Priority: | Critical |
| Reporter: | Frank Sommer | Assignee: | Milan Divilek |
| Resolution: | Fixed | Votes: | 1 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Linux, JDK 1.7.0_04 |
||
| Issue Links: |
|
||||||||||||||||
| Template: |
|
||||||||||||||||
| Acceptance criteria: |
Empty
|
||||||||||||||||
| Task DoD: |
[ ]*
Doc/release notes changes? Comment present?
[ ]*
Downstream builds green?
[ ]*
Solution information and context easily available?
[ ]*
Tests
[ ]*
FixVersion filled and not yet released
[ ] 
Architecture Decision Record (ADR)
|
||||||||||||||||
| Date of First Response: | |||||||||||||||||
| Description |
|
The activation in magnolia does not work with Java 7. The following exception is thrown on recursive activations. We have to run our application with Java 6. 12-08-29 10:24:34 ERROR AUTHOR[Thread-60]info.magnolia.module.admininterface.commands.ActivationCommand: can't activate java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:747) at java.util.TimSort.mergeAt(TimSort.java:483) at java.util.TimSort.mergeCollapse(TimSort.java:408) at java.util.TimSort.sort(TimSort.java:214) at java.util.TimSort.sort(TimSort.java:173) at java.util.Arrays.sort(Arrays.java:659) at java.util.Collections.sort(Collections.java:217) at info.magnolia.module.admininterface.commands.ActivationCommand.activateRecursive(ActivationCommand.java:212) at info.magnolia.module.admininterface.commands.ActivationCommand.activateBulkUpdate(ActivationCommand.java:141) at info.magnolia.module.admininterface.commands.ActivationCommand.execute(ActivationCommand.java:96) at info.magnolia.commands.MgnlCommand.executePooledOrSynchronized(MgnlCommand.java:174) at info.magnolia.commands.MgnlCommand.execute(MgnlCommand.java:161) at info.magnolia.module.workflow.MgnlParticipant.consume(MgnlParticipant.java:132) at openwfe.org.embed.impl.engine.AbstractEmbeddedParticipant.dispatch(AbstractEmbeddedParticipant.java:154) at openwfe.org.engine.expressions.ParticipantExpression.dispatch(ParticipantExpression.java:474) at openwfe.org.engine.expressions.ParticipantExpression.regularDispatch(ParticipantExpression.java:489) at openwfe.org.engine.expressions.ParticipantExpression.apply(ParticipantExpression.java:430) at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371) at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112) at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529) at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542) at openwfe.org.engine.expressions.SequentialFlowExpression.apply(SequentialFlowExpression.java:140) at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112) at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529) at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542) at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:554) at openwfe.org.engine.expressions.SequenceExpression.reply(SequenceExpression.java:130) at openwfe.org.engine.expressions.state.NormalState.reply(NormalState.java:118) at openwfe.org.engine.impl.expool.SimpleExpressionPool.reply(SimpleExpressionPool.java:713) at openwfe.org.engine.impl.expool.SimpleExpressionPool.replyToParent(SimpleExpressionPool.java:644) at openwfe.org.engine.expressions.AbstractFlowExpression.replyToParent(AbstractFlowExpression.java:479) at openwfe.org.engine.expressions.IfExpression.applyConsequence(IfExpression.java:260) at openwfe.org.engine.expressions.IfExpression.reply(IfExpression.java:189) at openwfe.org.engine.expressions.state.NormalState.reply(NormalState.java:118) at openwfe.org.engine.impl.expool.SimpleExpressionPool.reply(SimpleExpressionPool.java:713) at openwfe.org.engine.impl.expool.SimpleExpressionPool.replyToParent(SimpleExpressionPool.java:644) at openwfe.org.engine.expressions.AbstractFlowExpression.replyToParent(AbstractFlowExpression.java:479) at openwfe.org.engine.expressions.AbstractFlowExpression.applyToParent(AbstractFlowExpression.java:494) at openwfe.org.engine.expressions.DefinedExpression.apply(DefinedExpression.java:97) at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371) at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112) at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529) at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542) at openwfe.org.engine.expressions.IfExpression.apply(IfExpression.java:128) at openwfe.org.engine.expressions.raw.RawExpression.apply(RawExpression.java:371) at openwfe.org.engine.expressions.state.NormalState.apply(NormalState.java:112) at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:529) at openwfe.org.engine.impl.expool.SimpleExpressionPool.apply(SimpleExpressionPool.java:542) at openwfe.org.engine.expressions.SequentialFlowExpression.apply(SequentialFlowExpression.java:140) at openwfe.org.engine.expressions.AbstractFlowExpression.launch(AbstractFlowExpression.java:163) at openwfe.org.engine.expressions.raw.RawExpression.launch(RawExpression.java:383) at openwfe.org.engine.impl.expool.SimpleExpressionPool.applyOrLaunch(SimpleExpressionPool.java:527) at openwfe.org.engine.impl.expool.SimpleExpressionPool.launch(SimpleExpressionPool.java:565) at openwfe.org.engine.impl.launch.SimpleXmlLauncher$1.run(SimpleXmlLauncher.java:453) |
| Comments |
| Comment by Joerg von Frantzius [ 29/Aug/12 ] |
|
This affects [SUPPORT-1845], where use of Java 7 was considered not to be a problem... |
| Comment by Joerg von Frantzius [ 30/Aug/12 ] |
|
There was a patch supplied in SUPPORT-1845 , and there are plans to fix this in 4.5.5. Are there any plans to backport the fix to 4.4.x ? |
| Comment by Milan Divilek [ 27/Sep/12 ] |
|
Hello Jörg, there is no plan to backport the fix to 4.4.x. It should be simple workaround for this issue setup new system property, java.util.Arrays.useLegacyMergeSort to true. See http://www.oracle.com/technetwork/java/javase/compatibility-417013.html "Synopsis: Updated sort behavior for Arrays and Collections may throw an IllegalArgumentException". |