[
https://issues.apache.org/jira/browse/WICKET-5518?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Petr Lancaric 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
{
if(isChanged)
formComponent.getModel().setObject(collection);
else
// TODO: create here collection as
non-abstract successor of setObject declared argument
formComponent.getModel().setObject(new
ArrayList(convertedInput));
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
> {
> if(isChanged)
>
> formComponent.getModel().setObject(collection);
> else
> // TODO: create here collection as
> non-abstract successor of setObject declared argument
> formComponent.getModel().setObject(new
> ArrayList(convertedInput));
> 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)