You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2018/12/02 11:33:14 UTC
svn commit: r1847987 -
/jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java
Author: fschumacher
Date: Sun Dec 2 11:33:14 2018
New Revision: 1847987
URL: http://svn.apache.org/viewvc?rev=1847987&view=rev
Log:
Simplify code that tries to find the correct constructor
Part of #435 and Bugzilla Id: 62972
Modified:
jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java?rev=1847987&r1=1847986&r2=1847987&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java Sun Dec 2 11:33:14 2018
@@ -19,9 +19,9 @@
package org.apache.jmeter.gui.util;
import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import javax.swing.event.TableModelEvent;
@@ -40,6 +40,10 @@ public class PowerTableModel extends Def
private Class<?>[] columnClasses;
+ private static final List<Object> DEFAULT_ARGS = Collections.unmodifiableList(Arrays.asList("", Integer.valueOf(0),
+ Long.valueOf(0L), Boolean.FALSE, Float.valueOf(0F), Double.valueOf(0D), Character.valueOf(' '),
+ Byte.valueOf(Byte.MIN_VALUE), Short.valueOf(Short.MIN_VALUE)));
+
public PowerTableModel(String[] headers, Class<?>[] classes) {
if (headers.length != classes.length){
throw new IllegalArgumentException("Header and column array sizes differ");
@@ -159,50 +163,13 @@ public class PowerTableModel extends Def
try {
return colClass.getDeclaredConstructor().newInstance();
} catch (Exception e) {
- try {
- Constructor<?> constr = colClass.getConstructor(String.class);
- return constr.newInstance("");
- } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ignored) {
- }
- try {
- Constructor<?> constr = colClass.getConstructor(Integer.TYPE);
- return constr.newInstance(Integer.valueOf(0));
- } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ignored) {
- }
- try {
- Constructor<?> constr = colClass.getConstructor(Long.TYPE);
- return constr.newInstance(Long.valueOf(0L));
- } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ignored) {
- }
- try {
- Constructor<?> constr = colClass.getConstructor(Boolean.TYPE);
- return constr.newInstance(Boolean.FALSE);
- } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ignored) {
- }
- try {
- Constructor<?> constr = colClass.getConstructor(Float.TYPE);
- return constr.newInstance(Float.valueOf(0F));
- } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ignored) {
- }
- try {
- Constructor<?> constr = colClass.getConstructor(Double.TYPE);
- return constr.newInstance(Double.valueOf(0D));
- } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ignored) {
- }
- try {
- Constructor<?> constr = colClass.getConstructor(Character.TYPE);
- return constr.newInstance(Character.valueOf(' '));
- } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ignored) {
- }
- try {
- Constructor<?> constr = colClass.getConstructor(Byte.TYPE);
- return constr.newInstance(Byte.valueOf(Byte.MIN_VALUE));
- } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ignored) {
- }
- try {
- Constructor<?> constr = colClass.getConstructor(Short.TYPE);
- return constr.newInstance(Short.valueOf(Short.MIN_VALUE));
- } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException ignored) {
+ for (Object initArg: DEFAULT_ARGS) {
+ try {
+ Constructor<?> constr = colClass.getConstructor(initArg.getClass());
+ return constr.newInstance(initArg);
+ } catch (ReflectiveOperationException ignored) {
+ // no need to log this, as we are just trying out all available default args
+ }
}
}
return "";