fixes #7 ModuleServer threw the Exception while fetching the constructors of the module class. The ordering of constructors in the returned array has for some reason changed between Java 6 and 7. New code checks for a constructor with the exact number of required parameters.
Also fixes 2 UTF-8 incompatible files.
This commit is contained in:
parent
a9c0f3a4cf
commit
7d3d20c4b7
@ -163,22 +163,25 @@ public class ModuleServer {
|
||||
selectedModuleName);
|
||||
|
||||
Constructor<?>[] constructorArr = module.getConstructors();
|
||||
// create a module instance
|
||||
// create a module instance
|
||||
int constrIndex=0;
|
||||
if ((goParams==null && noGuiLogFile==null) || !module.equals(GOModuleAdapter.class)) {
|
||||
if (goParams!=null) System.err.println("Cant set params - no matching constructor found for " + adapterName + " (ModuleServer)");
|
||||
if (noGuiLogFile!=null) System.err.println("Cant deactivate GUI - no matching constructor found for " + adapterName + " (ModuleServer)");
|
||||
Object[] Para = new Object[2];
|
||||
Class<?> paramTypes[] = (constructorArr[0]).getParameterTypes();
|
||||
while ((constructorArr[constrIndex].getParameterTypes().length!=2) && (constrIndex < constructorArr.length)) {
|
||||
constrIndex++;
|
||||
}
|
||||
Class<?> paramTypes[] = (constructorArr[constrIndex]).getParameterTypes();
|
||||
Para[0] = paramTypes[0].cast(adapterName);
|
||||
Para[1] = paramTypes[1].cast(Client);
|
||||
m_ModuleAdapter = (ModuleAdapter) constructorArr[0].newInstance(Para);
|
||||
m_ModuleAdapter = (ModuleAdapter) constructorArr[constrIndex].newInstance(Para);
|
||||
} else {
|
||||
Object[] Para = new Object[4];
|
||||
Para[0] = (String)adapterName;
|
||||
Para[1] = (InterfaceGOParameters)goParams;
|
||||
Para[2] = (String)noGuiLogFile;
|
||||
Para[3] = (MainAdapterClient)Client;
|
||||
int constrIndex=0;
|
||||
while ((constructorArr[constrIndex].getParameterTypes().length!=4) && (constrIndex < constructorArr.length)) {
|
||||
constrIndex++;
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ public class ArchivingNSGAIISMeasure extends ArchivingNSGAII {
|
||||
Arrays.sort(frontArray,new AbstractEAIndividualComparator(0));
|
||||
|
||||
|
||||
((AbstractEAIndividual)frontArray[0]).putData("HyperCube",Double.MAX_VALUE); //die beiden außen bekommen maximal wert als smeasure
|
||||
((AbstractEAIndividual)frontArray[0]).putData("HyperCube",Double.MAX_VALUE); //die beiden aussen bekommen maximal wert als smeasure
|
||||
((AbstractEAIndividual)frontArray[frontArray.length-1]).putData("HyperCube",Double.MAX_VALUE);
|
||||
v[0]=Double.MAX_VALUE;
|
||||
v[frontArray.length-1]=Double.MAX_VALUE;
|
||||
|
@ -139,7 +139,7 @@ public class RemoveSurplusIndividualsSMetric implements InterfaceRemoveSurplusIn
|
||||
}
|
||||
|
||||
|
||||
result[global[ sort[ 0 ] ]]=Double.MAX_VALUE; //die beiden außen bekommen maximal wert als smeasure
|
||||
result[global[ sort[ 0 ] ]]=Double.MAX_VALUE; //die beiden aussen bekommen maximal wert als smeasure
|
||||
result[global[ sort[ counter - 1 ] ]]=Double.MAX_VALUE;
|
||||
|
||||
for (int e = 1; e < counter - 1; e++)
|
||||
|
Loading…
x
Reference in New Issue
Block a user