Skip to content

Commit 7756d04

Browse files
committed
Fix some instances of bogus parameter filling
* If an input has been resolved already, do not overwrite. * If the input type is super general -- e.g. an Object when the preprocessor fills in Context or UserInterface -- do not fill.
1 parent 4235519 commit 7756d04

File tree

5 files changed

+13
-8
lines changed

5 files changed

+13
-8
lines changed

src/main/java/org/scijava/module/DefaultModuleService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -497,9 +497,8 @@ private ModuleItem<?> getSingleItem(final Module module,
497497

498498
for (final ModuleItem<?> item : items) {
499499
final String name = item.getName();
500-
final boolean resolved = module.isInputResolved(name);
501-
if (resolved) continue; // skip resolved inputs
502500
if (!item.isAutoFill()) continue; // skip unfillable inputs
501+
if (module.isInputResolved(name)) continue; // skip resolved inputs
503502
final Class<?> itemType = item.getType();
504503
for (final Class<?> type : types) {
505504
if (type.isAssignableFrom(itemType)) {

src/main/java/org/scijava/module/process/GatewayPreprocessor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ public class GatewayPreprocessor extends AbstractPreprocessorPlugin {
6464
@Override
6565
public void process(final Module module) {
6666
for (final ModuleItem<?> input : module.getInfo().inputs()) {
67-
if (!input.isAutoFill()) continue; // cannot auto-fill this input
67+
if (!input.isAutoFill()) continue; // skip unfillable inputs
68+
if (module.isInputResolved(input.getName())) continue; // skip resolved inputs
6869
final Class<?> type = input.getType();
6970
if (Gateway.class.isAssignableFrom(type)) {
7071
// input is a gateway

src/main/java/org/scijava/module/process/ServicePreprocessor.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ public class ServicePreprocessor extends AbstractPreprocessorPlugin {
7070
@Override
7171
public void process(final Module module) {
7272
for (final ModuleItem<?> input : module.getInfo().inputs()) {
73-
if (!input.isAutoFill()) continue; // cannot auto-fill this input
73+
if (!input.isAutoFill()) continue; // skip unfillable inputs
74+
if (module.isInputResolved(input.getName())) continue; // skip resolved inputs
7475
final Class<?> type = input.getType();
7576
if (Service.class.isAssignableFrom(type)) {
7677
// input is a service
@@ -79,7 +80,9 @@ public void process(final Module module) {
7980
(ModuleItem<? extends Service>) input;
8081
setServiceValue(getContext(), module, serviceInput);
8182
}
82-
if (type.isAssignableFrom(getContext().getClass())) {
83+
if (Context.class.isAssignableFrom(type) && //
84+
type.isAssignableFrom(getContext().getClass()))
85+
{
8386
// input is a compatible context
8487
final String name = input.getName();
8588
module.setInput(name, getContext());

src/main/java/org/scijava/ui/UIPreprocessor.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,12 @@ public void process(final Module module) {
6262
if (ui == null) return; // no default UI
6363

6464
for (final ModuleItem<?> input : module.getInfo().inputs()) {
65-
if (!input.isAutoFill()) continue; // cannot auto-fill this input
65+
if (!input.isAutoFill()) continue; // skip unfillable inputs
66+
if (module.isInputResolved(input.getName())) continue; // skip resolved inputs
6667
final Class<?> type = input.getType();
67-
if (type.isAssignableFrom(ui.getClass())) {
68+
if (UserInterface.class.isAssignableFrom(type) && //
69+
type.isAssignableFrom(ui.getClass()))
70+
{
6871
// input is a compatible UI
6972
final String name = input.getName();
7073
module.setInput(name, ui);

src/test/java/org/scijava/script/ScriptServiceTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,5 +129,4 @@ public void testArrayAliases() throws ScriptException {
129129

130130
ctx.dispose();
131131
}
132-
133132
}

0 commit comments

Comments
 (0)