Menu

#4 wrong cast in with {target} keyword

open
nobody
None
5
2012-02-19
2012-02-19
ifaqs
No

when using the target keyword in customizations or mmaxquery (e.g. <rule pattern='pointer={target}' style='foreground=blue'/>) on an attribute defined as markable_pointer the program throws an exception when loading the project or firing the query:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
at org.eml.MMAX2.annotation.markables.MarkableLevel.getActiveMarkablePointersForTargetMarkable(MarkableLevel.java:1081)
at org.eml.MMAX2.annotation.markables.MarkableHelper.matches(MarkableHelper.java:2823)
at org.eml.MMAX2.annotation.markables.MarkableHelper.matchesAny(MarkableHelper.java:3111)
at org.eml.MMAX2.annotation.markables.SimpleMarkableCustomization.matches(SimpleMarkableCustomization.java:201)
at org.eml.MMAX2.gui.display.MarkableLevelRenderer.getAttributesForMarkable(MarkableLevelRenderer.java:683)
at org.eml.MMAX2.annotation.markables.MarkableChart.getTopAttributesAtDiscourseElement(MarkableChart.java:766)
at org.eml.MMAX2.gui.display.MarkableLevelRenderer.render(MarkableLevelRenderer.java:358)
at org.eml.MMAX2.annotation.markables.MarkableChart.rerender(MarkableChart.java:1439)
at org.eml.MMAX2.core.MMAX2.requestRefreshDisplay(MMAX2.java:343)
at org.eml.MMAX2.discourse.MMAX2Discourse.reapplyStyleSheet(MMAX2Discourse.java:956)
at org.eml.MMAX2.core.MMAX2.loadMMAXFile(MMAX2.java:1050)
at org.eml.MMAX2.core.MMAX2.requestLoadFile(MMAX2.java:2373)
at org.eml.MMAX2.core.MMAX2.access$1(MMAX2.java:2317)
at org.eml.MMAX2.core.MMAX2$5.actionPerformed(MMAX2.java:1202)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
...

the problem is in org.eml.MMAX2.annotation.markables.MarkableLevel at line 1081:

"templist = (ArrayList)Arrays.asList(requiredPointerRelation.getMarkablePointersWithTargetMarkable(markable));"

should be something like this

"templist = new ArrayList(Arrays.asList(requiredPointerRelation.getMarkablePointersWithTargetMarkable(markable)));"

or line 1075:

ArrayList templist = new ArrayList();

should be

List templist = new ArrayList();
templist = Arrays.asList(requiredPointerRelation.getMarkablePointersWithTargetMarkable(markable));"

Discussion


Log in to post a comment.