axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rob Decker (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-3423) ConverterUtil.convertToDateTime is adding portion of fractions of a second to time as milliseconds during conversion
Date Fri, 04 Jan 2008 16:33:34 GMT

    [ https://issues.apache.org/jira/browse/AXIS2-3423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12555974#action_12555974
] 

Rob Decker commented on AXIS2-3423:
-----------------------------------

I get an xml dateTime string like this: 2008-01-03T20:08:59.686521Z in an  org.apache.axis2.rpc.receivers.RPCMessageReceiver
service call. I have a request POJO that gets the dateTime as a java.util.Date which ends
up like this: 2008-01-03 15:20:25.521 (the toString method of Date is converting it to local
time GMT-5:00). I then pass it back in the response POJO and the conversion gives me this:

2008-01-03T20:20:25.521Z

I'm not doing anything with the date, just reading it in and passing it back out. Somewhere
an extra 10 minutes or so was added. The exact amount added depends on the time input. 



> ConverterUtil.convertToDateTime is adding portion of fractions of a second to time as
milliseconds during conversion
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-3423
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3423
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: databinding
>    Affects Versions: 1.4, nightly
>         Environment: Java 1.5 
>            Reporter: Rob Decker
>
> In org.apache.axis2.databinding.utils.ConverterUtil method convertToDateTime lines 946
to 955 of the 20071231 nitely build is trying to round the fractions of a millisecond but
is instead parsing out millionths of a second, stripping the thousands and adding the left
over millionths of a second to time:
>             if (milliSecondPartLength != 3){
>                 // milisecond part represenst the fraction of the second so we have to
>                 // find the fraction and multiply it by 1000. So if milisecond part
>                 // has three digits nothing required
>                 miliSecond = miliSecond * 1000;
>                 for (int i = 0; i < milliSecondPartLength; i++) {
>                     miliSecond = miliSecond / 10;
>                 }
>             }
>             calendar.set(Calendar.MILLISECOND, miliSecond);  // <-- this adds millionths
of a second as milliseconds
> The loop should be:
>     double ms = milliSecond * 1000;
>     for (int =0; i < milliSecondPartLength; i++) {
>         ms = ms /10;
>    }
>    miliSecond = (ms%1)*1000;

-- 
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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message