[ http://issues.apache.org/jira/browse/DERBY-790?page=all ]

Francois Orsini updated DERBY-790:
----------------------------------

    Attachment: DERBY-790-v1.stat
                DERBY-790-v1.diff

I have attached some patch to address DERBY-790.

I have added a new test as part of derbynet/SqlExceptionTest.java (junit test) 
and made sure it ran fine under the derbynet and derbynetclient frameworks - I 
have also made sure that the issue reported by DERBY-790 is indeed fixed by the 
change reflected in - This fix is much simpler than it originally was and 
thanks to the changes into client/am/SqlException.java which recursively create 
a SQLException object out of a SqlException one...The risk of this fix is 
minimal.

Basically, I have made Sqlca SqlException attribute a transient one as it is 
mostly and only required when the SQLException gets created through recursion 
before returning it to the client - Sqlca does not need to be serialized, once 
the SQLException has been constructed out of getSQLException() in 
SqlException.java; hence a client can go ahead and serialize it.

The cause of the NotSeriazableException was due to the fact that we stick the 
SqlException object in the init 'cause' of the SQLException (Throwable), and 
during serialization, the exception would be raised against Sqlca.

Cheers. --francois

> SQLException used by the networked interface to Derby is not serializable
> -------------------------------------------------------------------------
>
>                 Key: DERBY-790
>                 URL: http://issues.apache.org/jira/browse/DERBY-790
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client, Network Server
>    Affects Versions: 10.1.1.0
>         Environment: Windows XP; WebLogic Server 9.0
>            Reporter: David Cabelus
>         Assigned To: Francois Orsini
>             Fix For: 10.2.2.0
>
>         Attachments: DERBY-790-v1.diff, DERBY-790-v1.stat
>
>
> When running RMI client tests with Derby,  many tests failed with the 
> following message:
> Caused by: java.rmi.UnmarshalException: Failed to marshal error response: 
> 'org.apache.derby.client.am.SqlException: 'DROP TABLE' cannot be performed on 
> 'SDF014B7' because it does not exist.' because exception ; nested exception 
> is:
>         java.io.NotSerializableException: 
> org.apache.derby.client.net.NetSqlca
>         at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:191)
>         at 
> weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:176)
> This issue is a blocking issue for us.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to