Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Villiger2020-06-24 09:36:39 +0000
committerMatthias Villiger2020-06-24 09:36:39 +0000
commit45ba6267c192ca9c89a63c8ed0d37b23cdc1ff37 (patch)
tree82dac142fb8cf1f10bc749b35ba5d3befb51b694
parent294956a1ce482a1c53b5fdb1576b0ce2164df71d (diff)
downloadorg.eclipse.scout.sdk-45ba6267c192ca9c89a63c8ed0d37b23cdc1ff37.tar.gz
org.eclipse.scout.sdk-45ba6267c192ca9c89a63c8ed0d37b23cdc1ff37.tar.xz
org.eclipse.scout.sdk-45ba6267c192ca9c89a63c8ed0d37b23cdc1ff37.zip
Fix rare ClassCastException in DTO update
-rw-r--r--org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/AbstractDtoGenerator.java3
-rw-r--r--org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/CompositeFormDataGenerator.java2
-rw-r--r--org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/DtoMemberSortObjectFactory.java21
-rw-r--r--org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/CompositeObjectTest.java2
4 files changed, 16 insertions, 12 deletions
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/AbstractDtoGenerator.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/AbstractDtoGenerator.java
index 466e24fc3..f0b2ed927 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/AbstractDtoGenerator.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/AbstractDtoGenerator.java
@@ -432,8 +432,7 @@ public abstract class AbstractDtoGenerator<TYPE extends AbstractDtoGenerator<TYP
@SuppressWarnings("squid:UnusedPrivateMethod") // used as method-reference
private void addPropertyDto(PropertyBean desc) {
String lowerCaseBeanName = Introspector.decapitalize(desc.name());
- CharSequence upperCaseBeanName = Strings.ensureStartWithUpperCase(desc.name());
-
+ String upperCaseBeanName = Strings.ensureStartWithUpperCase(desc.name()).toString();
String propName = upperCaseBeanName + ISdkProperties.SUFFIX_DTO_PROPERTY;
String propDataType = desc.type().reference();
String propDataTypeBoxed = JavaTypes.boxPrimitive(propDataType);
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/CompositeFormDataGenerator.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/CompositeFormDataGenerator.java
index 509e45790..c59701aac 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/CompositeFormDataGenerator.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/CompositeFormDataGenerator.java
@@ -106,7 +106,7 @@ public class CompositeFormDataGenerator<TYPE extends CompositeFormDataGenerator<
// Scout RT requires the first char to be upper-case for a getter.
// See org.eclipse.scout.rt.platform.reflect.FastBeanUtility.BEAN_METHOD_PAT.
- CharSequence methodName = Strings.ensureStartWithUpperCase(formDataTypeName);
+ String methodName = Strings.ensureStartWithUpperCase(formDataTypeName).toString();
this
.withType(dtoGenerator.withElementName(formDataTypeName), DtoMemberSortObjectFactory.forTypeFormDataFormField(formDataTypeName))
.withMethod(ScoutMethodGenerator.create()
diff --git a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/DtoMemberSortObjectFactory.java b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/DtoMemberSortObjectFactory.java
index 829e3c2d9..bef177300 100644
--- a/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/DtoMemberSortObjectFactory.java
+++ b/org.eclipse.scout.sdk.core.s/src/main/java/org/eclipse/scout/sdk/core/s/dto/DtoMemberSortObjectFactory.java
@@ -28,7 +28,7 @@ public final class DtoMemberSortObjectFactory {
* The name of the property. E.g. "PersonNrProperty".
* @return The sort order for the FormData Property getter
*/
- public static Object[] forMethodFormDataProperty(CharSequence propertyName) {
+ public static Object[] forMethodFormDataProperty(String propertyName) {
return SortedMemberEntry.createDefaultMethodPos(propertyName, 20);
}
@@ -40,7 +40,7 @@ public final class DtoMemberSortObjectFactory {
* The name of the property. E.g. "PersonNr".
* @return The sort order for the FormData legacy Property getter and setter
*/
- public static Object[] forMethodFormDataPropertyLegacy(CharSequence propertyName) {
+ public static Object[] forMethodFormDataPropertyLegacy(String propertyName) {
return forMethodFormDataFormField(propertyName);
}
@@ -52,7 +52,7 @@ public final class DtoMemberSortObjectFactory {
* The name of the FormField. E.g. "LastName" without getter or setter prefix and without "Field" Suffix.
* @return The sort order for the FormField getter
*/
- public static Object[] forMethodFormDataFormField(CharSequence name) {
+ public static Object[] forMethodFormDataFormField(String name) {
return SortedMemberEntry.createDefaultMethodPos(name, 10);
}
@@ -60,10 +60,11 @@ public final class DtoMemberSortObjectFactory {
* Creates a sort order object array for the methods in a AbstractTableFieldBeanData.<br>
* (e.g. {@code addRow()} or {@code getRowType()})
*
- * @param name The name of the method (e.g. "getRowType").
+ * @param name
+ * The name of the method (e.g. "getRowType").
* @return The sort order for the TableFieldBeanData method
*/
- public static Object[] forMethodTableData(CharSequence name) {
+ public static Object[] forMethodTableData(String name) {
return forMethodFormDataFormField(name);
}
@@ -75,7 +76,7 @@ public final class DtoMemberSortObjectFactory {
* The name of the property. E.g. "PersonNrProperty".
* @return The sort order for the FormData Property type
*/
- public static Object[] forTypeFormDataProperty(CharSequence propertyName) {
+ public static Object[] forTypeFormDataProperty(String propertyName) {
return forTypeFormDataFormField(propertyName);
}
@@ -87,16 +88,18 @@ public final class DtoMemberSortObjectFactory {
* The name of the FormField. E.g. "LastName" without "Field" Suffix.
* @return The sort order for the FormField type
*/
- public static Object[] forTypeFormDataFormField(CharSequence name) {
+ public static Object[] forTypeFormDataFormField(String name) {
return SortedMemberEntry.createDefaultTypePos(name);
}
/**
* Creates a sort order object array for the AbstractTableRowData type within a AbstractTableFieldBeanData.
- * @param name The name of the TableRowData type
+ *
+ * @param name
+ * The name of the TableRowData type
* @return The sort order for the RowData type.
*/
- public static Object[] forTypeTableRowData(CharSequence name) {
+ public static Object[] forTypeTableRowData(String name) {
return forTypeFormDataFormField(name);
}
}
diff --git a/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/CompositeObjectTest.java b/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/CompositeObjectTest.java
index a2b76eb0f..79b99ccb8 100644
--- a/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/CompositeObjectTest.java
+++ b/org.eclipse.scout.sdk.core.test/src/test/java/org/eclipse/scout/sdk/core/util/CompositeObjectTest.java
@@ -23,6 +23,7 @@ import org.junit.jupiter.api.Test;
*
* @since 6.1.0
*/
+@SuppressWarnings({"UnnecessaryBoxing", "SimplifiableJUnitAssertion", "ConstantConditions", "RedundantArrayCreation", "EqualsBetweenInconvertibleTypes", "EqualsWithItself"})
public class CompositeObjectTest {
@Test
@@ -70,6 +71,7 @@ public class CompositeObjectTest {
}
@Test
+ @SuppressWarnings("ResultOfMethodCallIgnored")
public void testCompareTo() {
CompositeObject o1 = new CompositeObject(1, 2, 3);
CompositeObject o2 = new CompositeObject(1, 2, 3);

Back to the top