db-ddlutils-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Xiong (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DDLUTILS-270) Bug on PlatformImplBase.java of /src/org/apache/ddlutils/platform
Date Wed, 26 Oct 2011 23:39:32 GMT

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

Sean Xiong commented on DDLUTILS-270:
-------------------------------------

One possible solution I found it that just using LinkedHashmap rather than Hashmap.
The updated implementation shown below:


/**
     * Derives the column values for the given dyna properties from the dyna bean.
     * 
     * @param properties The properties
     * @param bean       The bean
     * @return The values indexed by the column names
     */
    protected HashMap toColumnValues(SqlDynaProperty[] properties, DynaBean bean)
    {
        HashMap result = new LinkedHashMap();

        for (int idx = 0; idx < properties.length; idx++)
        {
            result.put(properties[idx].getName(),
                       bean == null ? null : bean.get(properties[idx].getName()));
        }
        return result;
    }
                
> Bug on PlatformImplBase.java of /src/org/apache/ddlutils/platform
> -----------------------------------------------------------------
>
>                 Key: DDLUTILS-270
>                 URL: https://issues.apache.org/jira/browse/DDLUTILS-270
>             Project: DdlUtils
>          Issue Type: Bug
>          Components: Core (No specific database)
>    Affects Versions: 1.0
>            Reporter: Sean Xiong
>            Assignee: Thomas Dudziak
>
> Bug found in Method protected HashMap toColumnValues(SqlDynaProperty[] properties, DynaBean
bean).
> Description: exception will thrown in the case of tables with composite primary keys
and the pk columns are in different types. 
> Use case throw exception: Table 'Employee' has a composite primary key with the combination
of two columns: {int: emplyeeid, string LastName}. 
>                                         Exception may thrown because of the keyset and
values stored in Hashmap may disordered and give the value of "LastName" to the key of "emplyid";
 
> Reason: Hashmap is used at here for storage and the items stored in Hashmap are not sorted
properly.
> /**
>      * Derives the column values for the given dyna properties from the dyna bean.
>      * 
>      * @param properties The properties
>      * @param bean       The bean
>      * @return The values indexed by the column names
>      */
>     protected HashMap toColumnValues(SqlDynaProperty[] properties, DynaBean bean)
>     {
>         HashMap result = new HashMap();
>         for (int idx = 0; idx < properties.length; idx++)
>         {
>             result.put(properties[idx].getName(),
>                        bean == null ? null : bean.get(properties[idx].getName()));
>         }
>         return result;
>     }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message