You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Sandeep Shrivastava (JIRA)" <ji...@apache.org> on 2008/05/02 21:52:55 UTC

[jira] Created: (OPENJPA-588) Test for checking the absolute index of field metadata fails

Test for checking the absolute index of field metadata fails
------------------------------------------------------------

                 Key: OPENJPA-588
                 URL: https://issues.apache.org/jira/browse/OPENJPA-588
             Project: OpenJPA
          Issue Type: Bug
            Reporter: Sandeep Shrivastava


We have a JDO metadata test which checks for the absolute index positions for the entity fields that are returned by the getIndex method of the FieldMetaData.

In this test ,we have an entity class MetaTest1
public class MetaTest1 {

    // these should not be persistent
    private static int staticField;
    private final String finalField = null;
    private transient char transientField;
    private MetaTest4 metaTest4Field;
    private MetaTest4[] metaTest4ArrayField;
    private Object objectField;
    private Long longWrapperField;
    private double doubleField;

    // persistent fields -- see metadata
    private String stringField;
    private Integer intWrapperField;
    private int intField;
    private MetaTest2 metaTest2Field;
    private MetaTest2[] metaTest2ArrayField;
    private int[] intArrayField;

    public static class Inner {

        private long longField;
    }
}

In the test, we get the MetaDataRepository and from it the ClassMetaData, 
then the FieldMetaData and so on.

The test fails at the line:

        assertEquals(6, _metaTest1.getField('stringField').getIndex());

Failure is :
[testlogic] junit.framework.AssertionFailedError: expected:<6> but was:<8>
[testlogic] 	at kodo.meta.TestClassMetaData.testAbsoluteFieldNumbering(TestClassMetaData.java:217)
[testlogic] 	at com.solarmetric.test.AbstractTestCase.run(AbstractTestCase.java:132)

The persistence mapping is defined in the JDO file

<jdo>
    <package name="kodo.meta">
        <!-- class MetaTest1 -->
        <class name="MetaTest1">
            <!-- field longWrapperField -->
            <field name="longWrapperField" persistence-modifier="none">
                <!-- comment1 on comment-test extension -->
                <!-- comment2 on comment-test extension -->
                <extension vendor-name="test" key="comment-test" value="test"/>
            </field>
            <field name="objectField" persistence-modifier="none"/>
            <field name="transientField" persistence-modifier="none"/>
            <field name="doubleField" persistence-modifier="transactional"/>
            <field name="intField" embedded="false" default-fetch-group="false" null-value="exception"/>
            <field name="intWrapperField" null-value="default"/>
        </class>
    </package>
</jdo>

There is no metadata mapping available for the MetaTest2 class. Initially the metadata is populated using reflection and assigns index positions to metaTest2Field and metaTest4ArrayField fields. During resolution the FieldMetaData[] _fields is reset and when ClassMetadata.getDeclaredIndex() is called later it is reinitialized but we dont set the index value on the FieldMetadata once assigned and this fails the test as it does not get the expected value for the index for the stringField.

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


[jira] Updated: (OPENJPA-588) Test for checking the absolute index of field metadata fails

Posted by "Sandeep Shrivastava (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sandeep Shrivastava updated OPENJPA-588:
----------------------------------------

    Attachment: openjpa-1.1.0-SNAPSHOT-r422266-650703.patch

Patch to set the index value on the FieldMetadata when reinitializing the fields array in the ClassMetaData class.

> Test for checking the absolute index of field metadata fails
> ------------------------------------------------------------
>
>                 Key: OPENJPA-588
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-588
>             Project: OpenJPA
>          Issue Type: Bug
>            Reporter: Sandeep Shrivastava
>         Attachments: openjpa-1.1.0-SNAPSHOT-r422266-650703.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> We have a JDO metadata test which checks for the absolute index positions for the entity fields that are returned by the getIndex method of the FieldMetaData.
> In this test ,we have an entity class MetaTest1
> public class MetaTest1 {
>     // these should not be persistent
>     private static int staticField;
>     private final String finalField = null;
>     private transient char transientField;
>     private MetaTest4 metaTest4Field;
>     private MetaTest4[] metaTest4ArrayField;
>     private Object objectField;
>     private Long longWrapperField;
>     private double doubleField;
>     // persistent fields -- see metadata
>     private String stringField;
>     private Integer intWrapperField;
>     private int intField;
>     private MetaTest2 metaTest2Field;
>     private MetaTest2[] metaTest2ArrayField;
>     private int[] intArrayField;
>     public static class Inner {
>         private long longField;
>     }
> }
> In the test, we get the MetaDataRepository and from it the ClassMetaData, 
> then the FieldMetaData and so on.
> The test fails at the line:
>         assertEquals(6, _metaTest1.getField('stringField').getIndex());
> Failure is :
> [testlogic] junit.framework.AssertionFailedError: expected:<6> but was:<8>
> [testlogic] 	at kodo.meta.TestClassMetaData.testAbsoluteFieldNumbering(TestClassMetaData.java:217)
> [testlogic] 	at com.solarmetric.test.AbstractTestCase.run(AbstractTestCase.java:132)
> The persistence mapping is defined in the JDO file
> <jdo>
>     <package name="kodo.meta">
>         <!-- class MetaTest1 -->
>         <class name="MetaTest1">
>             <!-- field longWrapperField -->
>             <field name="longWrapperField" persistence-modifier="none">
>                 <!-- comment1 on comment-test extension -->
>                 <!-- comment2 on comment-test extension -->
>                 <extension vendor-name="test" key="comment-test" value="test"/>
>             </field>
>             <field name="objectField" persistence-modifier="none"/>
>             <field name="transientField" persistence-modifier="none"/>
>             <field name="doubleField" persistence-modifier="transactional"/>
>             <field name="intField" embedded="false" default-fetch-group="false" null-value="exception"/>
>             <field name="intWrapperField" null-value="default"/>
>         </class>
>     </package>
> </jdo>
> There is no metadata mapping available for the MetaTest2 class. Initially the metadata is populated using reflection and assigns index positions to metaTest2Field and metaTest4ArrayField fields. During resolution the FieldMetaData[] _fields is reset and when ClassMetadata.getDeclaredIndex() is called later it is reinitialized but we dont set the index value on the FieldMetadata once assigned and this fails the test as it does not get the expected value for the index for the stringField.

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


[jira] Updated: (OPENJPA-588) Test for checking the absolute index of field metadata fails

Posted by "Patrick Linskey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Patrick Linskey updated OPENJPA-588:
------------------------------------

    Fix Version/s: 1.1.0

> Test for checking the absolute index of field metadata fails
> ------------------------------------------------------------
>
>                 Key: OPENJPA-588
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-588
>             Project: OpenJPA
>          Issue Type: Bug
>            Reporter: Sandeep Shrivastava
>             Fix For: 1.1.0
>
>         Attachments: openjpa-1.1.0-SNAPSHOT-r422266-650703.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> We have a JDO metadata test which checks for the absolute index positions for the entity fields that are returned by the getIndex method of the FieldMetaData.
> In this test ,we have an entity class MetaTest1
> public class MetaTest1 {
>     // these should not be persistent
>     private static int staticField;
>     private final String finalField = null;
>     private transient char transientField;
>     private MetaTest4 metaTest4Field;
>     private MetaTest4[] metaTest4ArrayField;
>     private Object objectField;
>     private Long longWrapperField;
>     private double doubleField;
>     // persistent fields -- see metadata
>     private String stringField;
>     private Integer intWrapperField;
>     private int intField;
>     private MetaTest2 metaTest2Field;
>     private MetaTest2[] metaTest2ArrayField;
>     private int[] intArrayField;
>     public static class Inner {
>         private long longField;
>     }
> }
> In the test, we get the MetaDataRepository and from it the ClassMetaData, 
> then the FieldMetaData and so on.
> The test fails at the line:
>         assertEquals(6, _metaTest1.getField('stringField').getIndex());
> Failure is :
> [testlogic] junit.framework.AssertionFailedError: expected:<6> but was:<8>
> [testlogic] 	at kodo.meta.TestClassMetaData.testAbsoluteFieldNumbering(TestClassMetaData.java:217)
> [testlogic] 	at com.solarmetric.test.AbstractTestCase.run(AbstractTestCase.java:132)
> The persistence mapping is defined in the JDO file
> <jdo>
>     <package name="kodo.meta">
>         <!-- class MetaTest1 -->
>         <class name="MetaTest1">
>             <!-- field longWrapperField -->
>             <field name="longWrapperField" persistence-modifier="none">
>                 <!-- comment1 on comment-test extension -->
>                 <!-- comment2 on comment-test extension -->
>                 <extension vendor-name="test" key="comment-test" value="test"/>
>             </field>
>             <field name="objectField" persistence-modifier="none"/>
>             <field name="transientField" persistence-modifier="none"/>
>             <field name="doubleField" persistence-modifier="transactional"/>
>             <field name="intField" embedded="false" default-fetch-group="false" null-value="exception"/>
>             <field name="intWrapperField" null-value="default"/>
>         </class>
>     </package>
> </jdo>
> There is no metadata mapping available for the MetaTest2 class. Initially the metadata is populated using reflection and assigns index positions to metaTest2Field and metaTest4ArrayField fields. During resolution the FieldMetaData[] _fields is reset and when ClassMetadata.getDeclaredIndex() is called later it is reinitialized but we dont set the index value on the FieldMetadata once assigned and this fails the test as it does not get the expected value for the index for the stringField.

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


[jira] Resolved: (OPENJPA-588) Test for checking the absolute index of field metadata fails

Posted by "Patrick Linskey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Patrick Linskey resolved OPENJPA-588.
-------------------------------------

    Resolution: Fixed

> Test for checking the absolute index of field metadata fails
> ------------------------------------------------------------
>
>                 Key: OPENJPA-588
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-588
>             Project: OpenJPA
>          Issue Type: Bug
>            Reporter: Sandeep Shrivastava
>             Fix For: 1.1.0
>
>         Attachments: openjpa-1.1.0-SNAPSHOT-r422266-650703.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> We have a JDO metadata test which checks for the absolute index positions for the entity fields that are returned by the getIndex method of the FieldMetaData.
> In this test ,we have an entity class MetaTest1
> public class MetaTest1 {
>     // these should not be persistent
>     private static int staticField;
>     private final String finalField = null;
>     private transient char transientField;
>     private MetaTest4 metaTest4Field;
>     private MetaTest4[] metaTest4ArrayField;
>     private Object objectField;
>     private Long longWrapperField;
>     private double doubleField;
>     // persistent fields -- see metadata
>     private String stringField;
>     private Integer intWrapperField;
>     private int intField;
>     private MetaTest2 metaTest2Field;
>     private MetaTest2[] metaTest2ArrayField;
>     private int[] intArrayField;
>     public static class Inner {
>         private long longField;
>     }
> }
> In the test, we get the MetaDataRepository and from it the ClassMetaData, 
> then the FieldMetaData and so on.
> The test fails at the line:
>         assertEquals(6, _metaTest1.getField('stringField').getIndex());
> Failure is :
> [testlogic] junit.framework.AssertionFailedError: expected:<6> but was:<8>
> [testlogic] 	at kodo.meta.TestClassMetaData.testAbsoluteFieldNumbering(TestClassMetaData.java:217)
> [testlogic] 	at com.solarmetric.test.AbstractTestCase.run(AbstractTestCase.java:132)
> The persistence mapping is defined in the JDO file
> <jdo>
>     <package name="kodo.meta">
>         <!-- class MetaTest1 -->
>         <class name="MetaTest1">
>             <!-- field longWrapperField -->
>             <field name="longWrapperField" persistence-modifier="none">
>                 <!-- comment1 on comment-test extension -->
>                 <!-- comment2 on comment-test extension -->
>                 <extension vendor-name="test" key="comment-test" value="test"/>
>             </field>
>             <field name="objectField" persistence-modifier="none"/>
>             <field name="transientField" persistence-modifier="none"/>
>             <field name="doubleField" persistence-modifier="transactional"/>
>             <field name="intField" embedded="false" default-fetch-group="false" null-value="exception"/>
>             <field name="intWrapperField" null-value="default"/>
>         </class>
>     </package>
> </jdo>
> There is no metadata mapping available for the MetaTest2 class. Initially the metadata is populated using reflection and assigns index positions to metaTest2Field and metaTest4ArrayField fields. During resolution the FieldMetaData[] _fields is reset and when ClassMetadata.getDeclaredIndex() is called later it is reinitialized but we dont set the index value on the FieldMetadata once assigned and this fails the test as it does not get the expected value for the index for the stringField.

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