Skip to content

Commit

Permalink
fixing MID-3037
Browse files Browse the repository at this point in the history
Shadow Details page won't display if ANY of the resources has invalid connectorRef
  • Loading branch information
katkav committed Jun 15, 2016
1 parent 6408471 commit 8fd0801
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
Expand Up @@ -43,6 +43,7 @@
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.page.error.PageError;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;

/**
* @author lazyman
Expand Down Expand Up @@ -136,6 +137,9 @@ public Iterator<SelectableBean<O>> internalIterator(long first, long count) {
LOGGER.trace("Query {} with {}", type.getSimpleName(), query.debugDump());
}

if (ResourceType.class.equals(type) && (options == null || options.isEmpty())){
options = SelectorOptions.createCollection(GetOperationOptions.createNoFetch());
}
List<PrismObject<O>> list = getModel().searchObjects(type, query, options, task, result);

if (LOGGER.isTraceEnabled()) {
Expand Down
Expand Up @@ -69,6 +69,7 @@
import com.evolveum.midpoint.prism.Definition;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismProperty;
import com.evolveum.midpoint.prism.match.PolyStringNormMatchingRule;
import com.evolveum.midpoint.prism.polystring.PolyStringNormalizer;
import com.evolveum.midpoint.prism.query.AndFilter;
Expand Down Expand Up @@ -744,20 +745,28 @@ private List<ResourceItemDto> loadResources() {

OperationResult result = new OperationResult(OPERATION_LOAD_RESOURCES);
try {
List<PrismObject<ResourceType>> objects = getModelService().searchObjects(ResourceType.class, null, null,
List<PrismObject<ResourceType>> objects = getModelService().searchObjects(ResourceType.class, null, SelectorOptions.createCollection(GetOperationOptions.createNoFetch()),
createSimpleTask(OPERATION_LOAD_RESOURCES), result);

if (objects != null) {
for (PrismObject<ResourceType> object : objects) {
resources.add(new ResourceItemDto(object.getOid(), WebComponentUtil.getName(object)));
StringBuilder nameBuilder = new StringBuilder(WebComponentUtil.getName(object));
PrismProperty<OperationResultType> fetchResult = object.findProperty(ResourceType.F_FETCH_RESULT);
if (fetchResult != null){
nameBuilder.append(" (");
nameBuilder.append(fetchResult.getRealValue().getStatus());
nameBuilder.append(")");
}
resources.add(new ResourceItemDto(object.getOid(), nameBuilder.toString()));
}
}
result.recordSuccess();
} catch (Exception ex) {
LoggingUtils.logException(LOGGER, "Couldn't load resources", ex);
result.recordFatalError("Couldn't load resources, reason: " + ex.getMessage(), ex);
} finally {
if (result.isUnknown()) {
result.recomputeStatus();
result.computeStatus();
}
}

Expand Down Expand Up @@ -810,7 +819,10 @@ private void loadResourceObjectClass(){
dto.setObjectClassList(accountObjectClassList);
} catch (Exception e){
LoggingUtils.logException(LOGGER, "Couldn't load object class list from resource.", e);
error("Couldn't load object class list from resource.");
result.recordFatalError("Couldn't load object class list from resource.: " +e.getMessage(), e);
showResult(result, false);
resourceModel.setObject(null);
new RestartResponseException(PageAccounts.this);
}
}

Expand Down

0 comments on commit 8fd0801

Please sign in to comment.