Program: 61037
Project: 61037
Buggy source:
public ResourceModalPage(final Resources basePage,final ModalWindow window,final ResourceTO resourceTO,final boolean createFlag){
  super();
  uSchemaAttrNames=schemaRestClient.getSchemaNames("String_Node_Str");
  uDerSchemaAttrNames=schemaRestClient.getDerivedSchemaNames("String_Node_Str");
  uVirSchemaAttrNames=schemaRestClient.getVirtualSchemaNames("String_Node_Str");
  final IModel<List<ConnInstanceTO>> connectors=new LoadableDetachableModel<List<ConnInstanceTO>>(){
    private static final long serialVersionUID=5275935387613157437L;
    @Override protected List<ConnInstanceTO> load(){
      return connectorRestClient.getAllConnectors();
    }
  }
;
  final IModel<List<SourceMappingType>> sourceMappingTypes=new LoadableDetachableModel<List<SourceMappingType>>(){
    private static final long serialVersionUID=5275935387613157437L;
    @Override protected List<SourceMappingType> load(){
      return Arrays.asList(SourceMappingType.values());
    }
  }
;
  final ConnInstanceTO connectorTO=new ConnInstanceTO();
  if (!createFlag) {
    connectorTO.setId(resourceTO.getConnectorId());
  }
  final Form form=new Form("String_Node_Str");
  form.setModel(new CompoundPropertyModel(resourceTO));
  final AjaxTextFieldPanel resourceName=new AjaxTextFieldPanel("String_Node_Str",getString("String_Node_Str"),new PropertyModel<String>(resourceTO,"String_Node_Str"),false);
  resourceName.setEnabled(createFlag);
  resourceName.addRequiredLabel();
  form.add(resourceName);
  final AjaxTextFieldPanel accountLink=new AjaxTextFieldPanel("String_Node_Str",getString("String_Node_Str"),new PropertyModel<String>(resourceTO,"String_Node_Str"),false);
  form.add(accountLink);
  final AjaxCheckBoxPanel forceMandatoryConstraint=new AjaxCheckBoxPanel("String_Node_Str",getString("String_Node_Str"),new PropertyModel<Boolean>(resourceTO,"String_Node_Str"),false);
  form.add(forceMandatoryConstraint);
  final AjaxDropDownChoicePanel<PropagationMode> optionalPropagationMode=new AjaxDropDownChoicePanel<PropagationMode>("String_Node_Str",getString("String_Node_Str"),new PropertyModel(resourceTO,"String_Node_Str"),false);
  optionalPropagationMode.setChoices(Arrays.asList(PropagationMode.values()));
  form.add(optionalPropagationMode);
  final AjaxDropDownChoicePanel<TraceLevel> createTraceLevel=new AjaxDropDownChoicePanel<TraceLevel>("String_Node_Str",getString("String_Node_Str"),new PropertyModel(resourceTO,"String_Node_Str"),false);
  createTraceLevel.setChoices(Arrays.asList(TraceLevel.values()));
  form.add(createTraceLevel);
  final AjaxDropDownChoicePanel<TraceLevel> updateTraceLevel=new AjaxDropDownChoicePanel<TraceLevel>("String_Node_Str",getString("String_Node_Str"),new PropertyModel(resourceTO,"String_Node_Str"),false);
  updateTraceLevel.setChoices(Arrays.asList(TraceLevel.values()));
  form.add(updateTraceLevel);
  final AjaxDropDownChoicePanel<TraceLevel> deleteTraceLevel=new AjaxDropDownChoicePanel<TraceLevel>("String_Node_Str",getString("String_Node_Str"),new PropertyModel(resourceTO,"String_Node_Str"),false);
  deleteTraceLevel.setChoices(Arrays.asList(TraceLevel.values()));
  form.add(deleteTraceLevel);
  final AjaxDropDownChoicePanel<ConnInstanceTO> connector=new AjaxDropDownChoicePanel<ConnInstanceTO>("String_Node_Str",getString("String_Node_Str"),new Model<ConnInstanceTO>(connectorTO),false);
  connector.setChoices(connectors.getObject());
  connector.setChoiceRenderer(new ChoiceRenderer("String_Node_Str","String_Node_Str"));
  connector.getField().setModel(new IModel<ConnInstanceTO>(){
    private static final long serialVersionUID=-4202872830392400310L;
    @Override public ConnInstanceTO getObject(){
      return connectorTO;
    }
    @Override public void setObject(    final ConnInstanceTO connector){
      resourceTO.setConnectorId(connector.getId());
    }
    @Override public void detach(){
    }
  }
);
  connector.addRequiredLabel();
  connector.setEnabled(createFlag);
  form.add(connector);
  mappingContainer=new WebMarkupContainer("String_Node_Str");
  mappingContainer.setOutputMarkupId(true);
  form.add(mappingContainer);
  final ListView<SchemaMappingTO> mappings=new ListView<SchemaMappingTO>("String_Node_Str",resourceTO.getMappings()){
    private static final long serialVersionUID=4949588177564901031L;
    @Override protected void populateItem(    final ListItem<SchemaMappingTO> item){
      final SchemaMappingTO mappingTO=item.getModelObject();
      item.add(new AjaxDecoratedCheckbox("String_Node_Str",new Model(Boolean.FALSE)){
        private static final long serialVersionUID=7170946748485726506L;
        @Override protected void onUpdate(        final AjaxRequestTarget target){
          int index=-1;
          for (int i=0; i < resourceTO.getMappings().size() && index == -1; i++) {
            if (mappingTO.equals(resourceTO.getMappings().get(i))) {
              index=i;
            }
          }
          if (index != -1) {
            resourceTO.getMappings().remove(index);
            item.getParent().removeAll();
            target.addComponent(mappingContainer);
          }
        }
        @Override protected IAjaxCallDecorator getAjaxCallDecorator(){
          return new AjaxPreprocessingCallDecorator(super.getAjaxCallDecorator()){
            private static final long serialVersionUID=-7927968187160354605L;
            @Override public CharSequence preDecorateScript(            final CharSequence script){
              return "String_Node_Str" + getString("String_Node_Str") + "String_Node_Str"+ "String_Node_Str"+ script+ "String_Node_Str"+ "String_Node_Str";
            }
          }
;
        }
      }
);
      final DropDownChoice<String> schemaAttrChoice=new DropDownChoice<String>("String_Node_Str",new PropertyModel<String>(mappingTO,"String_Node_Str"),(IModel)null);
      schemaAttrChoice.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
        private static final long serialVersionUID=-1107858522700306810L;
        @Override protected void onUpdate(        AjaxRequestTarget art){
          mappingTO.setSourceAttrName(schemaAttrChoice.getModelObject());
        }
      }
);
      schemaAttrChoice.setOutputMarkupId(true);
      if (mappingTO.getSourceMappingType() == null) {
        schemaAttrChoice.setChoices(Collections.EMPTY_LIST);
      }
 else {
switch (mappingTO.getSourceMappingType()) {
case UserSchema:
          schemaAttrChoice.setChoices(uSchemaAttrNames);
        break;
case UserDerivedSchema:
      schemaAttrChoice.setChoices(uDerSchemaAttrNames);
    break;
case UserVirtualSchema:
  schemaAttrChoice.setChoices(uVirSchemaAttrNames);
break;
case SyncopeUserId:
schemaAttrChoice.setEnabled(false);
schemaAttrChoice.setRequired(false);
schemaAttrChoice.setChoices(Collections.EMPTY_LIST);
mappingTO.setSourceAttrName("String_Node_Str");
break;
case Password:
schemaAttrChoice.setEnabled(false);
schemaAttrChoice.setRequired(false);
schemaAttrChoice.setChoices(Collections.EMPTY_LIST);
mappingTO.setSourceAttrName("String_Node_Str");
break;
default :
schemaAttrChoice.setChoices(Collections.EMPTY_LIST);
}
}
item.add(schemaAttrChoice);
item.add(new SourceMappingTypesDropDownChoice("String_Node_Str",new PropertyModel<SourceMappingType>(mappingTO,"String_Node_Str"),sourceMappingTypes,schemaAttrChoice).setRequired(true).setOutputMarkupId(true));
final TextField<String> destAttrName=new TextField<String>("String_Node_Str",new PropertyModel(mappingTO,"String_Node_Str"));
destAttrName.setRequired(true);
destAttrName.setLabel(new Model(getString("String_Node_Str")));
destAttrName.setOutputMarkupId(true);
destAttrName.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
private static final long serialVersionUID=-1107858522700306810L;
@Override protected void onUpdate(AjaxRequestTarget art){
mappingTO.setDestAttrName(destAttrName.getModelObject());
}
}
);
item.add(destAttrName);
final AutoCompleteTextField<String> mandatoryCondirion=new AutoCompleteTextField<String>("String_Node_Str",new PropertyModel(mappingTO,"String_Node_Str")){
private static final long serialVersionUID=-6648767303091874219L;
@Override protected Iterator getChoices(final String input){
List<String> choices;
if ("String_Node_Str".startsWith(input.toLowerCase())) {
choices=Collections.singletonList("String_Node_Str");
}
 else if ("String_Node_Str".startsWith(input.toLowerCase())) {
choices=Collections.singletonList("String_Node_Str");
}
 else {
choices=Collections.EMPTY_LIST;
}
return choices.iterator();
}
}
;
mandatoryCondirion.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
private static final long serialVersionUID=-1107858522700306810L;
@Override protected void onUpdate(AjaxRequestTarget art){
mappingTO.setMandatoryCondition(mandatoryCondirion.getModelObject());
}
}
);
item.add(mandatoryCondirion);
final CheckBox accountId=new CheckBox("String_Node_Str",new PropertyModel(mappingTO,"String_Node_Str"));
accountId.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
private static final long serialVersionUID=-1107858522700306810L;
@Override protected void onUpdate(AjaxRequestTarget art){
mappingTO.setAccountid(accountId.getModelObject());
}
}
);
item.add(accountId);
final CheckBox password=new CheckBox("String_Node_Str",new PropertyModel(mappingTO,"String_Node_Str"));
password.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
private static final long serialVersionUID=-1107858522700306810L;
@Override protected void onUpdate(AjaxRequestTarget art){
mappingTO.setPassword(password.getModelObject());
}
}
);
item.add(password);
}
}
;
mappings.setReuseItems(true);
mappingContainer.add(mappings);
AjaxButton addSchemaMappingBtn=new IndicatingAjaxButton("String_Node_Str",new Model(getString("String_Node_Str"))){
private static final long serialVersionUID=-4804368561204623354L;
@Override protected void onSubmit(final AjaxRequestTarget target,final Form form){
resourceTO.getMappings().add(new SchemaMappingTO());
target.addComponent(mappingContainer);
}
}
;
addSchemaMappingBtn.setDefaultFormProcessing(false);
form.add(addSchemaMappingBtn);
AjaxButton submit=new IndicatingAjaxButton("String_Node_Str",new Model(getString("String_Node_Str"))){
private static final long serialVersionUID=-958724007591692537L;
@Override protected void onSubmit(final AjaxRequestTarget target,final Form form){
ResourceTO resourceTO=(ResourceTO)form.getDefaultModelObject();
int accountIdCount=0;
for (SchemaMappingTO mapping : resourceTO.getMappings()) {
if (mapping.isAccountid()) {
accountIdCount++;
}
}
if (accountIdCount == 0 || accountIdCount > 1) {
error(getString("String_Node_Str"));
basePage.setOperationResult(false);
}
 else {
try {
if (createFlag) {
restClient.create(resourceTO);
}
 else {
restClient.update(resourceTO);
}
basePage.setOperationResult(true);
window.close(target);
}
 catch (SyncopeClientCompositeErrorException e) {
error(getString("String_Node_Str") + "String_Node_Str" + e.getMessage());
basePage.setOperationResult(false);
LOG.error("String_Node_Str",resourceTO);
}
}
}
@Override protected void onError(final AjaxRequestTarget target,final Form form){
target.addComponent(feedbackPanel);
}
}
;
form.add(submit);
add(form);
MetaDataRoleAuthorizationStrategy.authorize(submit,ENABLE,xmlRolesReader.getAllAllowedRoles("String_Node_Str",createFlag ? "String_Node_Str" : "String_Node_Str"));
}

Fixed version (ground truth):
public ResourceModalPage(final Resources basePage,final ModalWindow window,final ResourceTO resourceTO,final boolean createFlag){
  super();
  uSchemaAttrNames=schemaRestClient.getSchemaNames("String_Node_Str");
  uDerSchemaAttrNames=schemaRestClient.getDerivedSchemaNames("String_Node_Str");
  uVirSchemaAttrNames=schemaRestClient.getVirtualSchemaNames("String_Node_Str");
  final IModel<List<ConnInstanceTO>> connectors=new LoadableDetachableModel<List<ConnInstanceTO>>(){
    private static final long serialVersionUID=5275935387613157437L;
    @Override protected List<ConnInstanceTO> load(){
      return connectorRestClient.getAllConnectors();
    }
  }
;
  final IModel<List<SourceMappingType>> sourceMappingTypes=new LoadableDetachableModel<List<SourceMappingType>>(){
    private static final long serialVersionUID=5275935387613157437L;
    @Override protected List<SourceMappingType> load(){
      return Arrays.asList(SourceMappingType.values());
    }
  }
;
  final ConnInstanceTO connectorTO=new ConnInstanceTO();
  if (!createFlag) {
    connectorTO.setId(resourceTO.getConnectorId());
  }
  final Form form=new Form("String_Node_Str");
  form.setModel(new CompoundPropertyModel(resourceTO));
  final AjaxTextFieldPanel resourceName=new AjaxTextFieldPanel("String_Node_Str",getString("String_Node_Str"),new PropertyModel<String>(resourceTO,"String_Node_Str"),false);
  resourceName.setEnabled(createFlag);
  resourceName.addRequiredLabel();
  form.add(resourceName);
  final AjaxTextFieldPanel accountLink=new AjaxTextFieldPanel("String_Node_Str",getString("String_Node_Str"),new PropertyModel<String>(resourceTO,"String_Node_Str"),false);
  form.add(accountLink);
  final AjaxCheckBoxPanel forceMandatoryConstraint=new AjaxCheckBoxPanel("String_Node_Str",getString("String_Node_Str"),new PropertyModel<Boolean>(resourceTO,"String_Node_Str"),false);
  form.add(forceMandatoryConstraint);
  final AjaxDropDownChoicePanel<PropagationMode> optionalPropagationMode=new AjaxDropDownChoicePanel<PropagationMode>("String_Node_Str",getString("String_Node_Str"),new PropertyModel(resourceTO,"String_Node_Str"),false);
  optionalPropagationMode.setChoices(Arrays.asList(PropagationMode.values()));
  form.add(optionalPropagationMode);
  final AjaxDropDownChoicePanel<TraceLevel> createTraceLevel=new AjaxDropDownChoicePanel<TraceLevel>("String_Node_Str",getString("String_Node_Str"),new PropertyModel(resourceTO,"String_Node_Str"),false);
  createTraceLevel.setChoices(Arrays.asList(TraceLevel.values()));
  form.add(createTraceLevel);
  final AjaxDropDownChoicePanel<TraceLevel> updateTraceLevel=new AjaxDropDownChoicePanel<TraceLevel>("String_Node_Str",getString("String_Node_Str"),new PropertyModel(resourceTO,"String_Node_Str"),false);
  updateTraceLevel.setChoices(Arrays.asList(TraceLevel.values()));
  form.add(updateTraceLevel);
  final AjaxDropDownChoicePanel<TraceLevel> deleteTraceLevel=new AjaxDropDownChoicePanel<TraceLevel>("String_Node_Str",getString("String_Node_Str"),new PropertyModel(resourceTO,"String_Node_Str"),false);
  deleteTraceLevel.setChoices(Arrays.asList(TraceLevel.values()));
  form.add(deleteTraceLevel);
  final AjaxDropDownChoicePanel<ConnInstanceTO> connector=new AjaxDropDownChoicePanel<ConnInstanceTO>("String_Node_Str",getString("String_Node_Str"),new Model<ConnInstanceTO>(connectorTO),false);
  connector.setChoices(connectors.getObject());
  connector.setChoiceRenderer(new ChoiceRenderer("String_Node_Str","String_Node_Str"));
  connector.getField().setModel(new IModel<ConnInstanceTO>(){
    private static final long serialVersionUID=-4202872830392400310L;
    @Override public ConnInstanceTO getObject(){
      return connectorTO;
    }
    @Override public void setObject(    final ConnInstanceTO connector){
      resourceTO.setConnectorId(connector.getId());
    }
    @Override public void detach(){
    }
  }
);
  connector.addRequiredLabel();
  connector.setEnabled(createFlag);
  form.add(connector);
  mappingContainer=new WebMarkupContainer("String_Node_Str");
  mappingContainer.setOutputMarkupId(true);
  form.add(mappingContainer);
  final ListView<SchemaMappingTO> mappings=new ListView<SchemaMappingTO>("String_Node_Str",resourceTO.getMappings()){
    private static final long serialVersionUID=4949588177564901031L;
    @Override protected void populateItem(    final ListItem<SchemaMappingTO> item){
      final SchemaMappingTO mappingTO=item.getModelObject();
      item.add(new AjaxDecoratedCheckbox("String_Node_Str",new Model(Boolean.FALSE)){
        private static final long serialVersionUID=7170946748485726506L;
        @Override protected void onUpdate(        final AjaxRequestTarget target){
          int index=-1;
          for (int i=0; i < resourceTO.getMappings().size() && index == -1; i++) {
            if (mappingTO.equals(resourceTO.getMappings().get(i))) {
              index=i;
            }
          }
          if (index != -1) {
            resourceTO.getMappings().remove(index);
            item.getParent().removeAll();
            target.addComponent(mappingContainer);
          }
        }
        @Override protected IAjaxCallDecorator getAjaxCallDecorator(){
          return new AjaxPreprocessingCallDecorator(super.getAjaxCallDecorator()){
            private static final long serialVersionUID=-7927968187160354605L;
            @Override public CharSequence preDecorateScript(            final CharSequence script){
              return "String_Node_Str" + getString("String_Node_Str") + "String_Node_Str"+ "String_Node_Str"+ script+ "String_Node_Str"+ "String_Node_Str";
            }
          }
;
        }
      }
);
      final DropDownChoice<String> schemaAttrChoice=new DropDownChoice<String>("String_Node_Str",new PropertyModel<String>(mappingTO,"String_Node_Str"),(IModel)null);
      schemaAttrChoice.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
        private static final long serialVersionUID=-1107858522700306810L;
        @Override protected void onUpdate(        AjaxRequestTarget art){
          mappingTO.setSourceAttrName(schemaAttrChoice.getModelObject());
        }
      }
);
      schemaAttrChoice.setOutputMarkupId(true);
      if (mappingTO.getSourceMappingType() == null) {
        schemaAttrChoice.setChoices(Collections.EMPTY_LIST);
      }
 else {
switch (mappingTO.getSourceMappingType()) {
case UserSchema:
          schemaAttrChoice.setChoices(uSchemaAttrNames);
        break;
case UserDerivedSchema:
      schemaAttrChoice.setChoices(uDerSchemaAttrNames);
    break;
case UserVirtualSchema:
  schemaAttrChoice.setChoices(uVirSchemaAttrNames);
break;
case SyncopeUserId:
schemaAttrChoice.setEnabled(false);
schemaAttrChoice.setRequired(false);
schemaAttrChoice.setChoices(Collections.EMPTY_LIST);
mappingTO.setSourceAttrName("String_Node_Str");
break;
case Password:
schemaAttrChoice.setEnabled(false);
schemaAttrChoice.setRequired(false);
schemaAttrChoice.setChoices(Collections.EMPTY_LIST);
mappingTO.setSourceAttrName("String_Node_Str");
break;
default :
schemaAttrChoice.setChoices(Collections.EMPTY_LIST);
}
}
item.add(schemaAttrChoice);
item.add(new SourceMappingTypesDropDownChoice("String_Node_Str",new PropertyModel<SourceMappingType>(mappingTO,"String_Node_Str"),sourceMappingTypes,schemaAttrChoice).setRequired(true).setOutputMarkupId(true));
final TextField<String> destAttrName=new TextField<String>("String_Node_Str",new PropertyModel(mappingTO,"String_Node_Str"));
destAttrName.setRequired(true);
destAttrName.setLabel(new ResourceModel("String_Node_Str"));
destAttrName.setOutputMarkupId(true);
destAttrName.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
private static final long serialVersionUID=-1107858522700306810L;
@Override protected void onUpdate(AjaxRequestTarget art){
mappingTO.setDestAttrName(destAttrName.getModelObject());
}
}
);
item.add(destAttrName);
final AutoCompleteTextField<String> mandatoryCondirion=new AutoCompleteTextField<String>("String_Node_Str",new PropertyModel(mappingTO,"String_Node_Str")){
private static final long serialVersionUID=-6648767303091874219L;
@Override protected Iterator getChoices(final String input){
List<String> choices;
if ("String_Node_Str".startsWith(input.toLowerCase())) {
choices=Collections.singletonList("String_Node_Str");
}
 else if ("String_Node_Str".startsWith(input.toLowerCase())) {
choices=Collections.singletonList("String_Node_Str");
}
 else {
choices=Collections.EMPTY_LIST;
}
return choices.iterator();
}
}
;
mandatoryCondirion.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
private static final long serialVersionUID=-1107858522700306810L;
@Override protected void onUpdate(AjaxRequestTarget art){
mappingTO.setMandatoryCondition(mandatoryCondirion.getModelObject());
}
}
);
item.add(mandatoryCondirion);
final CheckBox accountId=new CheckBox("String_Node_Str",new PropertyModel(mappingTO,"String_Node_Str"));
accountId.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
private static final long serialVersionUID=-1107858522700306810L;
@Override protected void onUpdate(AjaxRequestTarget art){
mappingTO.setAccountid(accountId.getModelObject());
}
}
);
item.add(accountId);
final CheckBox password=new CheckBox("String_Node_Str",new PropertyModel(mappingTO,"String_Node_Str"));
password.add(new AjaxFormComponentUpdatingBehavior("String_Node_Str"){
private static final long serialVersionUID=-1107858522700306810L;
@Override protected void onUpdate(AjaxRequestTarget art){
mappingTO.setPassword(password.getModelObject());
}
}
);
item.add(password);
}
}
;
mappings.setReuseItems(true);
mappingContainer.add(mappings);
AjaxButton addSchemaMappingBtn=new IndicatingAjaxButton("String_Node_Str",new ResourceModel("String_Node_Str")){
private static final long serialVersionUID=-4804368561204623354L;
@Override protected void onSubmit(final AjaxRequestTarget target,final Form form){
resourceTO.getMappings().add(new SchemaMappingTO());
target.addComponent(mappingContainer);
}
}
;
addSchemaMappingBtn.setDefaultFormProcessing(false);
form.add(addSchemaMappingBtn);
AjaxButton submit=new IndicatingAjaxButton("String_Node_Str",new ResourceModel("String_Node_Str")){
private static final long serialVersionUID=-958724007591692537L;
@Override protected void onSubmit(final AjaxRequestTarget target,final Form form){
ResourceTO resourceTO=(ResourceTO)form.getDefaultModelObject();
int accountIdCount=0;
for (SchemaMappingTO mapping : resourceTO.getMappings()) {
if (mapping.isAccountid()) {
accountIdCount++;
}
}
if (accountIdCount == 0 || accountIdCount > 1) {
error(getString("String_Node_Str"));
basePage.setOperationResult(false);
}
 else {
try {
if (createFlag) {
restClient.create(resourceTO);
}
 else {
restClient.update(resourceTO);
}
basePage.setOperationResult(true);
window.close(target);
}
 catch (SyncopeClientCompositeErrorException e) {
error(getString("String_Node_Str") + "String_Node_Str" + e.getMessage());
basePage.setOperationResult(false);
LOG.error("String_Node_Str",resourceTO);
}
}
}
@Override protected void onError(final AjaxRequestTarget target,final Form form){
target.addComponent(feedbackPanel);
}
}
;
form.add(submit);
add(form);
MetaDataRoleAuthorizationStrategy.authorize(submit,ENABLE,xmlRolesReader.getAllAllowedRoles("String_Node_Str",createFlag ? "String_Node_Str" : "String_Node_Str"));
}