Skip to content

Commit fd03b63

Browse files
committed
Fix ClassCastException #171
This is a breaking change. RCPTT have icorrectly tried to use incompatible editing support to extract values, when cell text was empty. This worked only by accident. java.lang.ClassCastException: class org.eclipse.rcptt.ui.panels.assertion.AssertGroup cannot be cast to class org.eclipse.rcptt.tesla.core.protocol.Assert (org.eclipse.rcptt.ui.panels.assertion.AssertGroup is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @20f015cc; org.eclipse.rcptt.tesla.core.protocol.Assert is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @2d5f77ed) at org.eclipse.rcptt.ui.panels.assertion.AssertOperationEditingSupport.getValue(AssertOperationEditingSupport.java:49) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.eclipse.rcptt.tesla.internal.ui.player.TeslaSWTAccess.callMethod(TeslaSWTAccess.java:426) at org.eclipse.rcptt.tesla.internal.ui.player.SWTModelMapper.getColumnValue(SWTModelMapper.java:917) at org.eclipse.rcptt.tesla.internal.ui.player.SWTModelMapper.fillTreeItem(SWTModelMapper.java:823) at org.eclipse.rcptt.tesla.internal.ui.player.SWTModelMapper.internalMap(SWTModelMapper.java:153) at org.eclipse.rcptt.tesla.internal.ui.player.SWTModelMapper.map(SWTModelMapper.java:90) at org.eclipse.rcptt.tesla.internal.ui.player.SWTUIElement.getModel(SWTUIElement.java:260) at org.eclipse.rcptt.tesla.internal.ui.processors.SWTUIProcessor.handleAssert(SWTUIProcessor.java:1802) at org.eclipse.rcptt.tesla.internal.ui.processors.SWTUIProcessor.executeCommand(SWTUIProcessor.java:782) at org.eclipse.rcptt.tesla.workbench.texteditor.WorkbenchTexteditorProcessor.executeCommand(WorkbenchTexteditorProcessor.java:305) at org.eclipse.rcptt.tesla.internal.core.TeslaProcessorManager.executeCommand(TeslaProcessorManager.java:108)
1 parent 47d4838 commit fd03b63

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

rcpttTests/platform_tests/Recording/GetTooltipsWhenColumnsWithoutText.test

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ Element-Type: testcase
66
Element-Version: 3.0
77
External-Reference:
88
Id: _XS8ZEFqHEeSjvvK1muLiaA
9-
Runtime-Version: 2.5.5.202404041628
10-
Save-Time: 3/8/25, 11:12 PM
9+
Runtime-Version: 2.6.0.qualifier
10+
Save-Time: 5/9/25, 11:35 PM
1111
Testcase-Type: ecl
1212

1313
------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -24,14 +24,12 @@ get-view Tasks | get-tree | get-item 1 -column Priority
2424
| equals "TODO Auto-generated method stub" | verify-true
2525

2626
with [get-view Tasks | get-tree] {
27-
get-item "FIXME Very important action" -column Description | get-property "values['Priority']" | equals 2
28-
| verify-true
29-
get-item "FIXME Very important action" -column Description | get-property "values['Completion']" | equals false
30-
| verify-true
31-
get-item "TODO Auto-generated method stub" -column Description | get-property "values['Priority']" | equals 1
32-
| verify-true
33-
get-item "TODO Auto-generated method stub" -column Description | get-property "values['Completion']"
34-
| equals false | verify-true
27+
with [get-item -path "FIXME Very important action" -column Description] {
28+
get-property "cells[1].image.path" | equals "org.eclipse.ui.ide/icons/full/obj16/hprio_tsk.png" | verify-true
29+
get-property "cells[1].image" | equals "" | verify-false
30+
}
31+
get-item "TODO Auto-generated method stub" -column Description | get-property "cells[1].image" | equals "" | verify-true
32+
3533
}
3634

3735
------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--

runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/SWTModelMapper.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -914,9 +914,12 @@ private static Object getColumnValue(org.eclipse.swt.widgets.Widget widget,
914914
columnViewer, "editingSupport");
915915
Object value = null;
916916
if (es != null) {
917-
value = TeslaSWTAccess.callMethod(EditingSupport.class, es,
917+
if ((Boolean)TeslaSWTAccess.callMethod(EditingSupport.class, es,
918+
"canEdit", new Class[] { Object.class }, ((Item) widget).getData())) {
919+
value = TeslaSWTAccess.callMethod(EditingSupport.class, es,
918920
"getValue", new Class[] { Object.class },
919921
((Item) widget).getData());
922+
}
920923
}
921924
return value;
922925
}

0 commit comments

Comments
 (0)