[ https://issues.apache.org/jira/browse/CMIS-816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14042244#comment-14042244 ]
Florian Müller commented on CMIS-816: ------------------------------------- The CMIS spec defines the same HTTP status codes for a few CMIS exceptions. For example, constraint, contentAlreadyExists, nameConstraintViolation, updateConflict, and versioning share the HTTP status code 409. The Browser binding also provides the exception name and therefore can be unambiguously mapped to a Java exception. Unfortunately, the AtomPub binding doesn't provide any additional hint. The OpenCMIS server sends the exception name in the body and clients that understand this hint (OpenCMIS, DotCMIS,...) can throw the right exception. That's not in the spec and only in the code. The OpenCMIS clients don't rely on this hint and fall back to the next generic exception, if the hint is not present. (For status code 409 this a constraint exception.) If you would send a different body, this hint would be lost and AtomPub clients don't get fine grained exceptions anymore. If that's a big deal depends on the client application. The service wrappers let you intercept almost everything, in a binding agnostic way. You control what is going in and your control what is going out. They have been introduced to customize the server behavior. Technically, the AtomPub and JSON exception bodies can also be overridden in a service wrapper. But since it never was the intention of the service wrappers to do something binding specific, that requires a bit more code. i18n support is a different discussion. It's virtually impossible to add that without built-in support in the OpenCMIS. If you have use case for that, please open another issue. > Allow custom error handling in the AtomPub and Browser bindings > --------------------------------------------------------------- > > Key: CMIS-816 > URL: https://issues.apache.org/jira/browse/CMIS-816 > Project: Chemistry > Issue Type: Improvement > Components: opencmis-server > Affects Versions: OpenCMIS 0.11.0 > Reporter: Carlo Sciolla > Priority: Critical > Attachments: protected-error-handling.patch > > > The AtomPub and Browser bindings servlets implement exception handling > through private methods which are thus not extensible by end users. > This effectively inhibit fine grained control over error reporting, logging > or contents of the error messages. -- This message was sent by Atlassian JIRA (v6.2#6252)