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

Felix Meschberger closed FELIX-1164.
------------------------------------

    Resolution: Fixed

Applied fix in Rev. 775823.

> Updating a configuration containing a property configured with unbound array 
> size
> ---------------------------------------------------------------------------------
>
>                 Key: FELIX-1164
>                 URL: https://issues.apache.org/jira/browse/FELIX-1164
>             Project: Felix
>          Issue Type: Bug
>          Components: Web Console
>    Affects Versions: webconsole-1.2.10
>            Reporter: Felix Meschberger
>            Assignee: Felix Meschberger
>             Fix For: webconsole-1.2.12
>
>
> To configure a property to be stored as an unbounded array, the cardinality 
> of the property must be configured as Integer.MIN_VALUE in the metatype 
> definition. This may cause a failure to update such a configuration in the 
> ConfigManager class where the following construct is used to check whether 
> the temporary vector must be resized:
>                 int maxSize = Math.abs( ad.getCardinality() );
>                 if ( vec.size() > maxSize )
>                 {
>                     vec.setSize( maxSize );
>                 }
> The problem is that Math.abs(Integer.MIN_VALUE) is still Integer.MIN_VALUE 
> and thus negative (see also the Javadoc of the Math.abs(int) method). This 
> causes the test to pass but calling Vector.setSize(int) with a negative value 
> causes an ArrayIndexOutOfBoundsException.
> The fix is to ensure the maxSize is not negative before resetting the size. 
> Since the negative value in this case means "unbounded" anyway, we can safely 
> skip resizing the vector.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to