Closed rsgoncalves closed 8 years ago
When you say in general do you mean with respect to commits or other operations as well? Which others are presenting problems?
I haven't really worked out the best way to materialize all these exceptions, but the lion's share of the fine-grained metaproject editing methods have been moved to the client, so exceptions there should be wrapped in ClientRequestException
and you should be able to access the causes.
I've surfaced the ServerServiceExceptions that are thrown on commits
I'd like to propose a way to propagate exception from server to client. The idea is like this:
There are two benefits with this approach:
Let me know what do you think?
+1 - I think this is a good approach, simple. We'll have to map the existing exceptions to reasonable HTTP
codes, and I think rework some of the legacy objects from the RMI implementation. For example in the changes handler where we call commit, it throws three exceptions though in practice it only throws ServerServiceException
which will embed one of the other two. Passing this to the client and then unbundling it there to determine which to throw up to the GUI
is awkward, and as you note the GUI
only needs to put the error message into a dialog.
Let me just reopen this until I make all the edit tab changes, which I fully expected would be needed, We dropped the snapshot put for some reason (see #27)
these all look good to me now - closing this
From my tests this is happening with exceptions in general. The server throws some specific exception, but the client only gets a general "server internal exception 500", with no information about what went wrong. For example, as guest I tried to commit some changes and got the window in the screenshot below within Protege.
As a user, I've no idea what to do with this. The server reported the actual exception, which was: