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

Felix Meschberger resolved SLING-600.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: JCR Resource 2.0.4

Fixed in Rev. 682984 as indicated above. Also deployed SNAPSHOT version 
2.0.3-incubator-20080805.215826-3.

Please close the issue if the fix works for you. Thanks.

> ValueMap#get(String s, T obj) does not work with java.util.Calendar
> -------------------------------------------------------------------
>
>                 Key: SLING-600
>                 URL: https://issues.apache.org/jira/browse/SLING-600
>             Project: Sling
>          Issue Type: Bug
>          Components: JCR Resource
>         Environment: Windows XP, Sling Version 2.0.3-incubator-SNAPSHOT 
> (running on Communiqué5)
>            Reporter: Andreas Vogl
>            Assignee: Felix Meschberger
>             Fix For: JCR Resource 2.0.4
>
>
> I am using the sling api (Version 2.0.3-incubator-SNAPSHOT) to access 
> properties from a JCR repository and have noticed something strange in the 
> class
> org.apache.sling.api.resource.ValueMap
> The method "<T> T get(java.lang.String name, T defaultValue)" allows to pass 
> a default value. It will return the default value if the property "name" does 
> not exist in the map. This works fine for many types such as String, Long and 
> Boolean - but apparently it does not work for Calendar properties.
> The problem is that when i pass a default value of type java.util.Calendar, 
> the get method always returns the default value regardless wether there is a 
> property "name" or not. Wether the property "name" is of type "Date" (in the 
> JCR repository) or of type "String" does not seem to make a difference.
> The following example code can be used to reproduce the problem:
>   ValueMap map = resource.adaptTo(ValueMap.class);
>   // this does not work
>   Calendar defaultCalendar = new GregorianCalendar();
>   Calendar dateValue = map.get("dateProperty", defaultCalendar); // <- always 
> returns defaultCalendar
>   log.debug("dateProperty with default = "+(dateValue == null ? "null" : 
> dateValue.get(Calendar.MONTH)+"."+dateValue.get(Calendar.YEAR)));
>               
>   // without default value - works fine
>   dateValue = map.get("dateProperty", Calendar.class); // <- correctly 
> returns the dateProperty value
>   log.debug("dateProperty no default = "+(dateValue == null ? "null" : 
> dateValue.get(Calendar.MONTH)+"."+dateValue.get(Calendar.YEAR)));

-- 
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