[ 
https://issues.apache.org/jira/browse/PHOENIX-1577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14323558#comment-14323558
 ] 

James Taylor commented on PHOENIX-1577:
---------------------------------------

[~samarthjain] - would you mind taking a look a this?

[~jleech], [~ksoong] sounds like there's a bug here, but the rationale for 
doing this is in the following comment. Also, thanks for the code to repro, but 
best for us is a pull request with a unit test in it.
{code}
    /**
     * Utility function to work around the weirdness of the {@link Timestamp} 
constructor.
     * This method takes the milli-seconds that spills over to the nanos part 
as part of 
     * constructing the {@link Timestamp} object.
     * If we just set the nanos part of timestamp to the nanos passed in param, 
we 
     * end up losing the sub-second part of timestamp. 
     */
    public static Timestamp getTimestamp(long millis, int nanos) {
        Timestamp ts = new Timestamp(millis);
        ts.setNanos(ts.getNanos() + nanos);
        return ts;
    }
{code}

> java.lang.IllegalArgumentException: nanos > 999999999 or < 0 while use 
> Calendar
> -------------------------------------------------------------------------------
>
>                 Key: PHOENIX-1577
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1577
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.2
>            Reporter: Kylin Soong
>            Assignee: Samarth Jain
>
> I use the link [1] code, there always nanos > 999999999 or < 0 error throw.
> If execute insert, the error looks like:
> ~~~
> Exception in thread "main" java.lang.IllegalArgumentException: nanos > 
> 999999999 or < 0
>       at java.sql.Timestamp.setNanos(Timestamp.java:386)
>       at org.apache.phoenix.util.DateUtil.getTimestamp(DateUtil.java:142)
>       at 
> org.apache.phoenix.jdbc.PhoenixPreparedStatement.setTimestamp(PhoenixPreparedStatement.java:489)
> ~~~
> and select the error looks
> ~~~
> xception in thread "main" java.lang.IllegalArgumentException: nanos > 
> 999999999 or < 0
>       at java.sql.Timestamp.setNanos(Timestamp.java:386)
>       at org.apache.phoenix.util.DateUtil.getTimestamp(DateUtil.java:142)
>       at 
> org.apache.phoenix.jdbc.PhoenixResultSet.getTimestamp(PhoenixResultSet.java:638)
> ~~~
> Does this can be a bug?
> [1] 
> https://github.com/kylinsoong/data/blob/master/phoenix-quickstart/src/test/java/org/apache/phoenix/examples/BugReproduce.java



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to