mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
Merge pull request #1967 from nosqlbench/nosqlbench-1966-varargs
Nosqlbench 1966 varargs
This commit is contained in:
commit
337eaccdb0
@ -1,15 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="linkedinput" type="JarApplication" folderName="nbr integration tests">
|
||||
<extension name="software.aws.toolkits.jetbrains.core.execution.JavaAwsConnectionExtension">
|
||||
<option name="credential" />
|
||||
<option name="region" />
|
||||
<option name="useCurrentConnection" value="false" />
|
||||
</extension>
|
||||
<option name="JAR_PATH" value="$PROJECT_DIR$/nbr/target/nbr.jar" />
|
||||
<option name="PROGRAM_PARAMETERS" value="script src/test/resources/scripts/examples/linkedinput.js" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/nbr-examples" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" value="/usr/java/jdk-21" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
@ -89,7 +89,7 @@ public class NBSession extends NBHeartbeatComponent implements Function<List<Cmd
|
||||
|
||||
try (ResultContext results = new ResultContext(collector).ok()) {
|
||||
for (Cmd cmd : assembledCommands) {
|
||||
String explanation = " in context " + cmd.getTargetContext() + ", command '" + cmd.toString() + "'";
|
||||
String explanation = "in container '" + cmd.getTargetContext() + "', command '" + cmd.toString() + "'";
|
||||
try (NBInvokableCommand command = NBCommandAssembly.resolve(cmd,this::getContext)) {
|
||||
NBCommandParams params = NBCommandAssembly.paramsFor(cmd);
|
||||
NBBufferedContainer container = getContext(cmd.getTargetContext());
|
||||
|
@ -83,8 +83,14 @@ public class ArgsComparator implements Comparator<Constructor<?>> {
|
||||
int paramLen = ctor.getParameterCount();
|
||||
int argsLen = arguments.length;
|
||||
|
||||
if (paramLen!=argsLen && !ctor.isVarArgs()) {
|
||||
return MATCHRANK.INCOMPATIBLE;
|
||||
if (ctor.isVarArgs()) {
|
||||
if (argsLen<paramLen-1) {
|
||||
return MATCHRANK.INCOMPATIBLE;
|
||||
}
|
||||
} else {
|
||||
if (paramLen!=argsLen) {
|
||||
return MATCHRANK.INCOMPATIBLE;
|
||||
}
|
||||
}
|
||||
|
||||
int len = arguments.length; // only consider varargs if some provided
|
||||
@ -94,7 +100,8 @@ public class ArgsComparator implements Comparator<Constructor<?>> {
|
||||
Class<?>[] atypes = Arrays.stream(arguments).map(Object::getClass).toArray(i -> new Class<?>[i]);
|
||||
|
||||
for (int position = 0; position < len; position++) {
|
||||
Class<?> ptype = ptypes[position];
|
||||
|
||||
Class<?> ptype = (position<ptypes.length) ? ptypes[position] : ptypes[ptypes.length-1];
|
||||
Class<?> atype = (position<atypes.length) ? atypes[position] : atypes[atypes.length-1];
|
||||
Class<?> across = WRAPPER_TYPE_MAP.get(atype);
|
||||
Class<?> pcross = WRAPPER_TYPE_MAP.get(ptype);
|
||||
|
Loading…
Reference in New Issue
Block a user