| Summary: | Make server-side exceptions easier to correlate with their client-side causes | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Modeling] EMF | Reporter: | Caspar D. <caspar_d> | ||||||||||||||
| Component: | cdo.net4j | Assignee: | Caspar D. <caspar_d> | ||||||||||||||
| Status: | CLOSED FIXED | QA Contact: | Eike Stepper <stepper> | ||||||||||||||
| Severity: | enhancement | ||||||||||||||||
| Priority: | P3 | CC: | saulius.tvarijonas | ||||||||||||||
| Version: | 4.0 | Flags: | stepper:
review-
stepper: review- stepper: review+ |
||||||||||||||
| Target Milestone: | --- | ||||||||||||||||
| Hardware: | All | ||||||||||||||||
| OS: | All | ||||||||||||||||
| Whiteboard: | |||||||||||||||||
| Attachments: |
|
||||||||||||||||
|
Description
Caspar D.
Created attachment 191722 [details]
Patch
Created attachment 191725 [details]
Demo (as a patch)
This 'unit test' doesn't really test anything, but shows how
I envision the new info being retrieved and used. I think it
really makes debugging the client-side in case of a remoteEx
a lot easier.
Internal note: SVR-1277 Created attachment 192434 [details]
Patch v2
Some tests in SessionTest are failing.
The tests fail with the original patch, too. Please investigate... Hmm... a curious situation. What happens is that the openSessionRequest from the client to the server, triggers an authenticationRequest from the server to the client, which then fails on the client side because there is no credentialsProvider. And the exception to that effect is serialized back to the server, which is wrapped into a RemoteException after deserialization and associated with the original openSessionRequest. In turn, the openSessionRequest then notifies the client of this exception, which leads to a "RemoteRemoteException" on the client... And the problem lies therein, that a remote-remote-exception, requires the original remoteException to be serialized... but with my patch, this object has a field localRequest, which (in this case) references the AuthenthicationRequest instance -- which is not serializable. Hence, a NotSerializableException occurs, which is snuffed on the server side (why?), and leaves the client side without a remoteEx object to deserialize. Created attachment 192448 [details]
Patch v3
Made localRequest field transient + some additional patching to avoid
wrapping a remoteEx twice.
The diff of BufferInputStream.java shows that you've removed "import org.eclipse.net4j.util.io.IOTimeoutException;" while it's still being referened: https://bugs.eclipse.org/bugs/attachment.cgi?id=192448&action=diff . This leads to a compile error. Can't we trust in SVN anymore? Created attachment 192515 [details]
Patch v4
My fault, not SVN's. Attaching patch v4, same as v3 except
without the import removal.
Created attachment 192517 [details]
Patch v5
Committed revision 7587. Available in R20110608-1407 |