Mark Sztainbok created OLINGO-471:
-------------------------------------
Summary: Generated proxies do not handle ODataServerErrorException
correctly resulting in a UndeclaredThrowableException
Key: OLINGO-471
URL: https://issues.apache.org/jira/browse/OLINGO-471
Project: Olingo
Issue Type: Bug
Components: odata4-client
Affects Versions: V4 4.0.0-beta-01
Reporter: Mark Sztainbok
Fix For: (Java) V4 4.0.0-beta-02
When a server side exception occurs, the Olingo code throws a
ODataServerErrorException (in ODataResponseErrorChecker).
However the proxy classes are not generated with a throws clause for this
method resulting in an UndeclaredThrowableException e.g.
testAddAndRemoveLicenseForUser(com.saasure.application.office365.msgraphapi.MsGraphApiClientTest)
Time elapsed: 0.985 sec <<< ERROR!
java.lang.reflect.UndeclaredThrowableException: null
at
org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker.checkResponse(ODataErrorResponseChecker.java:73)
at
org.apache.olingo.client.core.communication.request.AbstractRequest.checkResponse(AbstractRequest.java:53)
at
org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:324)
at
org.apache.olingo.client.core.communication.request.invoke.AbstractODataInvokeRequest.execute(AbstractODataInvokeRequest.java:173)
at
org.apache.olingo.client.core.communication.request.invoke.AbstractODataInvokeRequest.execute(AbstractODataInvokeRequest.java:55)
at
org.apache.olingo.ext.proxy.commons.InvokerInvocationHandler.execute(InvokerInvocationHandler.java:122)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.olingo.ext.proxy.commons.AbstractInvocationHandler.invokeSelfMethod(AbstractInvocationHandler.java:90)
at
org.apache.olingo.ext.proxy.commons.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:279)
at com.sun.proxy.$Proxy40.execute(Unknown Source)
at
com.saasure.application.office365.msgraphapi.MsGraphApiClient.addLicenseForUser(MsGraphApiClient.java:494)
at
com.saasure.application.office365.msgraphapi.MsGraphApiClient.addLicenseForUser(MsGraphApiClient.java:482)
at
com.saasure.application.office365.msgraphapi.MsGraphApiClientTest.testAddAndRemoveLicenseForUser(MsGraphApiClientTest.java:260)
This is because the exception is checked but not declared on the proxy
interface (see
http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/UndeclaredThrowableException.html
and
http://amitstechblog.wordpress.com/2011/07/24/java-proxies-and-undeclaredthrowableexception/).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)