[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xmlbeans-dev
Subject:    [jira] Commented: (XMLBEANS-343) Using java.util.Calendar with
From:       "Wing Yew Poon (JIRA)" <xmlbeans-dev () xml ! apache ! org>
Date:       2007-08-27 19:31:30
Message-ID: 28833514.1188243090792.JavaMail.jira () brutus
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/XMLBEANS-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12523093 \
] 

Wing Yew Poon commented on XMLBEANS-343:
----------------------------------------

XMLBeans does have to call get on the Calendar fields.

> Using java.util.Calendar with XmlBeans properties causes Calendar object to be \
>                 modified
> ---------------------------------------------------------------------------------------
>  
> Key: XMLBEANS-343
> URL: https://issues.apache.org/jira/browse/XMLBEANS-343
> Project: XMLBeans
> Issue Type: Bug
> Affects Versions:  Version 2.3
> Environment: Apache XmlBeans version 2.3.0-r540734
> J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223-20060504 (JIT enabled)
> J9VM - 20060501_06428_lHdSMR
> JIT  - 20060428_1800_r8
> GC   - 20060501_AA
> Reporter: J Blaufuss
> Priority: Minor
> Attachments: dateElementSchema.xsd, Test2.java
> 
> 
> A java.util.Calendar object is modified after being passed to a XmlBeans object \
> setter method.  Specifically, if a field is cleared on the Calendar before being \
> passed in, it may be uncleared by the setter.  I believe this behavior is \
> incorrect, as my expectation is that XmlBeans will not tamper with the data that \
> it's given.  For an example, see below. The effect of this is if your schema \
> specifies an element with type xs:date, but for whatever reason you cannot or do \
> not want to have the time zone appear in your xml, you have to explicitly clear the \
> ZONE_OFFSET field on the calendar *each time* before you use it to set an XmlBean \
> object property.  Otherwise, the second time you use a calendar to set a date it \
>                 will appear with a timezone in your xml.
> **** schema for the example bean ****
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" \
> elementFormDefault="qualified" attributeFormDefault="unqualified">  <xs:element \
> name="date" type="xs:date"/> </xs:schema>
> **** example code ****
> package test;
> import java.util.Calendar;
> import noNamespace.DateDocument;
> public class Test2
> {
> 	public static void main(String args[])
> 	{
> 		// create a new calendar
> 		Calendar calendar = Calendar.getInstance();
> 		calendar.set(Calendar.YEAR, 1844);
> 		calendar.set(Calendar.MONTH, Calendar.JANUARY);
> 		calendar.set(Calendar.DAY_OF_MONTH, 1);
> 		
> 		// clear time zone from calendar
> 		calendar.clear(Calendar.ZONE_OFFSET);
> 		
> 		// store the before status of the ZONE_OFFSET field
> 		// before == false
> 		boolean before = calendar.isSet(Calendar.ZONE_OFFSET);
> 		
> 		// create bean & set a element with type xs:date with calendar
> 		DateDocument dateDoc = DateDocument.Factory.newInstance();
> 		dateDoc.setDate(calendar);
> 		
> 		// store the after status of the ZONE_OFFSET field
> 		// I expect both before & after to equal false,
> 		// but after == true in this case
> 		boolean after = calendar.isSet(Calendar.ZONE_OFFSET);
> 		
> 		if (before != after)
> 		{
> 			System.out
> 					.println("Change detected in ZONE_OFFSET field: before:"
> 							+ before + " after:" + after);
> 		}
> 		else
> 		{
> 			System.out.println("No change detected.");
> 		}
> 	}
> }

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: dev-help@xmlbeans.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic