You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by se...@apache.org on 2011/11/26 03:43:03 UTC
svn commit: r1206394 -
/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
Author: sebb
Date: Sat Nov 26 02:43:03 2011
New Revision: 1206394
URL: http://svn.apache.org/viewvc?rev=1206394&view=rev
Log:
Log some warnings for inconsistent descriptor attributes
Modified:
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java?rev=1206394&r1=1206393&r2=1206394&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java Sat Nov 26 02:43:03 2011
@@ -96,6 +96,7 @@ public class GenericTestBeanCustomizer e
private static final Logger log = LoggingManager.getLoggerForClass();
+ // should be quicker to find the editors if they are registered.
static {
PropertyEditorManager.registerEditor(Long.class, LongPropertyEditor.class);
PropertyEditorManager.registerEditor(Integer.class, IntegerPropertyEditor.class);
@@ -206,6 +207,8 @@ public class GenericTestBeanCustomizer e
continue;
}
+ validateAttributes(descriptor);
+
PropertyEditor propertyEditor;
Object guiType = descriptor.getValue(GUITYPE);
if (guiType instanceof GuiEditor) {
@@ -276,6 +279,40 @@ public class GenericTestBeanCustomizer e
}
/**
+ * Validate the descriptor attributes.
+ *
+ * @param pd
+ */
+ private static void validateAttributes(PropertyDescriptor pd) {
+ if (notNull(pd) && pd.getValue(DEFAULT) == null) {
+ log.warn(getDetails(pd) + " requires a value but does not provide a default.");
+ }
+ if (notOther(pd) && pd.getValue(TAGS) == null) {
+ log.warn(getDetails(pd) + " does not have tags but other values are not allowed.");
+ }
+ if (!notNull(pd)) {
+ Class<?> propertyType = pd.getPropertyType();
+ if (propertyType.isPrimitive()) {
+ log.warn(getDetails(pd) + " allows null but is a primitive type");
+ }
+ }
+ }
+
+ /**
+ * Identify the property from the descriptor.
+ *
+ * @param pd
+ * @return
+ */
+ private static String getDetails(PropertyDescriptor pd) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(pd.getReadMethod().getDeclaringClass().getName());
+ sb.append('#');
+ sb.append(pd.getName());
+ return sb.toString();
+ }
+
+ /**
* Find the default typeEditor and a suitable guiEditor for the given
* property descriptor, and combine them in a WrapperEditor.
*