[ 
https://issues.apache.org/jira/browse/WICKET-5518?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sven Meier updated WICKET-5518:
-------------------------------

    Description: 
FormComponent.updateCollectionModel should handle situation, when getter 
returns unmodifiable list.

Proposed solution:

    formComponent.modelChanging();
                        booelan isChanged;
                        try {
                                collection.clear();
                                if (convertedInput != null)
                                {
                                        collection.addAll(convertedInput);
                                }
                                isChanged = true;
                        catch (Exception e)
                        {
                                // ignore this exception as Unmodifiable list 
does not allow change                             
                                logger.info("An error occurred while trying to 
modify list attached to " + formComponent, e);
                        }

                        try
                        {
                                formComponent.getModel().setObject(collection);
                                isChanged = true;
                        }
                        catch (Exception e)
                        {
                                // ignore this exception because it could be 
that there
                                // is not setter for this collection.
                                logger.info("An error occurred while trying to 
set the new value for the property attached to " + formComponent, e);
                        }
                        // at least one update method should pass successfully  
                
                        if(isChanged)
                                formComponent.modelChanged();
                        else
                                throw new RuntimeException("An error occurred 
while trying to modify value for the property attached to " + formComponent)

  was:
FormComponent.updateCollectionModel should handle situation, when getter 
returns unmodifiable list.

Proposed solution:

        formComponent.modelChanging();
                        booelan isChanged;
                        try {
                                collection.clear();
                                if (convertedInput != null)
                                {
                                        collection.addAll(convertedInput);
                                }
                                isChanged = true;
                        catch (Exception e)
                        {
                                // ignore this exception as Unmodifiable list 
does not allow change                             
                                logger.info("An error occurred while trying to 
modify list attached to " + formComponent, e);
                        }

                        try
                        {
                                formComponent.getModel().setObject(collection);
                                isChanged = true;
                        }
                        catch (Exception e)
                        {
                                // ignore this exception because it could be 
that there
                                // is not setter for this collection.
                                logger.info("An error occurred while trying to 
set the new value for the property attached to " + formComponent, e);
                        }
                        // at least one update method should pass successfully  
                
                        if(isChanged)
                                formComponent.modelChanged();
                        else
                                throw new RuntimeException("An error occurred 
while trying to modify value for the property attached to " + formComponent)


> FormComponent.updateCollectionModel  does not handle unmodifiableList
> ---------------------------------------------------------------------
>
>                 Key: WICKET-5518
>                 URL: https://issues.apache.org/jira/browse/WICKET-5518
>             Project: Wicket
>          Issue Type: Bug
>    Affects Versions: 6.12.0
>            Reporter: Petr Lancaric
>            Priority: Minor
>
> FormComponent.updateCollectionModel should handle situation, when getter 
> returns unmodifiable list.
> Proposed solution:
>     formComponent.modelChanging();
>                       booelan isChanged;
>                       try {
>                               collection.clear();
>                               if (convertedInput != null)
>                               {
>                                       collection.addAll(convertedInput);
>                               }
>                               isChanged = true;
>                       catch (Exception e)
>                       {
>                               // ignore this exception as Unmodifiable list 
> does not allow change                             
>                               logger.info("An error occurred while trying to 
> modify list attached to " + formComponent, e);
>                       }
>                       try
>                       {
>                               formComponent.getModel().setObject(collection);
>                               isChanged = true;
>                       }
>                       catch (Exception e)
>                       {
>                               // ignore this exception because it could be 
> that there
>                               // is not setter for this collection.
>                               logger.info("An error occurred while trying to 
> set the new value for the property attached to " + formComponent, e);
>                       }
>                       // at least one update method should pass successfully  
>                 
>                       if(isChanged)
>                               formComponent.modelChanged();
>                       else
>                               throw new RuntimeException("An error occurred 
> while trying to modify value for the property attached to " + formComponent)



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to