[ 
https://issues.apache.org/jira/browse/DERBY-6926?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bryan Pendleton updated DERBY-6926:
-----------------------------------
    Description: 
The readExternal and writeExternal methods are not checked before reading and 
writing. Indeed, other classes do check before that. For example, 
CompressSpacePageOperation implements the above two methods, and both are 
checked. In particular, the code of CompressSpacePageOperation.readExternal  is:
{code}
public void readExternal(ObjectInput in)
                 throws IOException, ClassNotFoundException
        {
                super.readExternal(in);
                if( !(this instanceof CompressSpacePageOperation10_2) )
                {
                        newHighestPage      = in.readInt();
                        num_pages_truncated = CompressedNumber.readInt(in);
                }
        }
{code}
The code of InitPageOperation.readExternal  is:
{code}
public void readExternal(ObjectInput in) 
                 throws IOException, ClassNotFoundException
        {
                super.readExternal(in);
                nextRecordId = CompressedNumber.readInt(in);
                initFlag = CompressedNumber.readInt(in);
                pageOffset = CompressedNumber.readLong(in);
                pageFormatId = in.readInt();
        }.
{code}
It is better to guide the method as CompressSpacePageOperation does.

  was:
The readExternal and writeExternal methods are not checked before reading and 
writing. Indeed, other classes do check before that. For example, 
CompressSpacePageOperation implements the above two methods, and both are 
checked. In particular, the code of CompressSpacePageOperation.readExternal  is:
public void readExternal(ObjectInput in)
                 throws IOException, ClassNotFoundException
        {
                super.readExternal(in);
                if( !(this instanceof CompressSpacePageOperation10_2) )
                {
                        newHighestPage      = in.readInt();
                        num_pages_truncated = CompressedNumber.readInt(in);
                }
        }
The code of InitPageOperation.readExternal  is:
public void readExternal(ObjectInput in) 
                 throws IOException, ClassNotFoundException
        {
                super.readExternal(in);
                nextRecordId = CompressedNumber.readInt(in);
                initFlag = CompressedNumber.readInt(in);
                pageOffset = CompressedNumber.readLong(in);
                pageFormatId = in.readInt();
        }.
It is better to guide the method as CompressSpacePageOperation does.


> InitPageOperation does not check before reading and writing
> -----------------------------------------------------------
>
>                 Key: DERBY-6926
>                 URL: https://issues.apache.org/jira/browse/DERBY-6926
>             Project: Derby
>          Issue Type: Improvement
>          Components: Store
>    Affects Versions: 10.12.1.1
>            Reporter: Hao Zhong
>
> The readExternal and writeExternal methods are not checked before reading and 
> writing. Indeed, other classes do check before that. For example, 
> CompressSpacePageOperation implements the above two methods, and both are 
> checked. In particular, the code of CompressSpacePageOperation.readExternal  
> is:
> {code}
> public void readExternal(ObjectInput in)
>                throws IOException, ClassNotFoundException
>       {
>               super.readExternal(in);
>               if( !(this instanceof CompressSpacePageOperation10_2) )
>               {
>                       newHighestPage      = in.readInt();
>                       num_pages_truncated = CompressedNumber.readInt(in);
>               }
>       }
> {code}
> The code of InitPageOperation.readExternal  is:
> {code}
> public void readExternal(ObjectInput in) 
>                throws IOException, ClassNotFoundException
>       {
>               super.readExternal(in);
>               nextRecordId = CompressedNumber.readInt(in);
>               initFlag = CompressedNumber.readInt(in);
>               pageOffset = CompressedNumber.readLong(in);
>               pageFormatId = in.readInt();
>       }.
> {code}
> It is better to guide the method as CompressSpacePageOperation does.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to