<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi Adam,<br>
<br>
From looking at the stack trace, I think the
HttpDetailsWithException is wrapped at some point into a
javax.ws.rs.ProcessingException . Have you tried catching that
instead? <br>
<pre class="moz-signature" cols="72">Best regards,
Alex
--
Alex Jitianu
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
<a class="moz-txt-link-freetext" href="http://www.oxygenxml.com">http://www.oxygenxml.com</a> </pre>
<div class="moz-cite-prefix">On 4/18/2016 4:06 PM, Adam Retter
wrote:<br>
</div>
<blockquote
cite="mid:CAPK0ici3mfcHPS79Sfric8obGeVbeQBX2rDd5NA2uLx9Wn0z8g@mail.gmail.com"
type="cite">
<p dir="ltr">Hi Alex I'm afraid that won't work for me as the same
sever URIs will be used both with my plugin and with other
Oxygen features like WebDav. Is there anyway to to catch the
exception? if I put a try catch around it, it seems to not be
caught!</p>
<p dir="ltr">I think maybe this is because it's a different
HttpDetailsWithException which has been obfuscated when compared
to the one I see in the SDK.</p>
<div class="gmail_quote">On 18 Apr 2016 7:52 am, "Alex Jitianu"
<<a moz-do-not-send="true" href="mailto:alex_jitianu@sync.ro">alex_jitianu@sync.ro</a>>
wrote:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> Hi Adam,<br>
<br>
Oxygen installs it's own protocol handler for "http". As far
as I can see, the problem would be that the
ro.sync.net.protocol.http.WebdavHttpURLConnection.getResponseCode()
method throws an exception instead of returning the 404
code. I'll add an issue for us to fix this. In the mean time
I recommend using the Targeted URL Stream Handler [1] plugin
extension. From this extension you can decide to use the SUN
protocols when connecting to Jersey:<br>
<br>
<pre><strong style="color:#7f0055">public</strong> <strong style="color:#7f0055">class</strong> CustomTargetedURLStreamHandler<span>Plugin</span>Extension
<strong style="color:#7f0055">implements</strong> TargetedURLStreamHandler<span>Plugin</span>Extension {
<em><span style="color:gray">@Override</span></em>
<strong style="color:#7f0055">public</strong> <strong style="color:#7f0055">boolean</strong> canHandleProtocol(String protocol) {
<strong style="color:#7f0055">boolean</strong> handleProtocol = false;
<strong style="color:#7f0055">if</strong> (<span style="color:#2a00ff">"http"</span>.equals(protocol) || <span style="color:#2a00ff">"https"</span>.equals(protocol)) {
<em style="color:#006400">// This extension handles both HTTP and HTTPS protocols</em>
handleProtocol = true;
}
<strong style="color:#7f0055">return</strong> handleProtocol;
}</pre>
<pre> <em><span style="color:gray">@Override</span></em>
<strong style="color:#7f0055">public</strong> URLStreamHandler getURLStreamHandler(URL url) {
<em style="color:#006400">// This method is called only for the URLs with a protocol </em>
<em style="color:#006400">// for which the canHandleProtocol(String) method returns true (HTTP and HTTPS)</em>
URLStreamHandler handler = null;
String host = url.getHost();
String protocol = url.getProtocol();
<strong style="color:#7f0055">if</strong> (<b><span style="color:#2a00ff">"</span></b><b><span style="color:#2a00ff"><a moz-do-not-send="true" href="http://slaws.info" target="_blank">slaws.info</a>"</span></b><b>.equals(host)</b>) {
<em style="color:#006400">// When there are connections opened from some_host, the SUN HTTP(S) </em>
<em style="color:#006400">// handlers are used</em>
<strong style="color:#7f0055">if</strong> (<span style="color:#2a00ff">"http"</span>.equals(protocol)) {
<b>handler = </b><strong style="color:#7f0055">new</strong><b> sun.net.www.protocol.http.Handler();</b>
} <strong style="color:#7f0055">else</strong> {
handler = <strong style="color:#7f0055">new</strong> sun.net.www.protocol.https.Handler();
}
}
<strong style="color:#7f0055">return</strong> handler;
}
}
}
</pre>
[1]
<a moz-do-not-send="true"
href="http://oxygenxml.com/doc/versions/17.1/ug-editor/#concepts/targeted-url-handler-plugin.html"
target="_blank">http://oxygenxml.com/doc/versions/17.1/ug-editor/#concepts/targeted-url-handler-plugin.html</a><br>
<pre cols="72">Best regards,
Alex
--
Alex Jitianu
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
<a moz-do-not-send="true" href="http://www.oxygenxml.com" target="_blank">http://www.oxygenxml.com</a> </pre>
<div>On 4/17/2016 4:44 AM, Adam Retter wrote:<br>
</div>
<blockquote type="cite">
<pre>I am trying to use Jersey 2.22.2 from inside my Oxygen plugin, but
when I use a URL which my server doesn't recognise and results in a
404, then for a reason I don't understand Jersey seems to be throwing
me Oxygen's HttpExceptionWithDetails.
Any ideas how I can get Oxygen not to override Jersey's error
handling? The stacktrace looks like:
Exception in thread "AWT-EventQueue-0"
javax.ws.rs.ProcessingException:
ro.sync.net.protocol.http.HttpExceptionWithDetails: 404 Not Found for:
<a moz-do-not-send="true" href="http://slaws.info/upload.php" target="_blank">http://slaws.info/upload.php</a>
at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:287)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:684)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:681)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:681)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:437)
at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:343)
at org.humanistika.oxygen.tei.authorizer.remote.impl.JerseyClient.uploadSuggestion(JerseyClient.java:157)
at org.humanistika.oxygen.tei.authorizer.TeiAuthorizer$AddNewSuggestionCIValue.uploadSuggestion(TeiAuthorizer.java:166)
at org.humanistika.oxygen.tei.authorizer.TeiAuthorizer$AddNewSuggestionCIValue.getInsertString(TeiAuthorizer.java:145)
at ro.sync.contentcompletion.g.x(Unknown Source)
at ro.sync.contentcompletion.f.ab(Unknown Source)
at ro.sync.contentcompletion.xml.k.gpm(Unknown Source)
at ro.sync.contentcompletion.l.j.spm(Unknown Source)
at ro.sync.contentcompletion.l.j.aom(Unknown Source)
at ro.sync.contentcompletion.l.j.processKeyEvent(Unknown Source)
at ro.sync.contentcompletion.l.u.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Component.java:6312)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
at java.awt.Component.dispatchEventImpl(Component.java:4762)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at ro.sync.ui.application.ApplicationLauncher$_b$1.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: ro.sync.net.protocol.http.HttpExceptionWithDetails: 404 Not
Found for: <a moz-do-not-send="true" href="http://slaws.info/upload.php" target="_blank">http://slaws.info/upload.php</a>
at ro.sync.net.protocol.http.b.d.cb(Unknown Source)
at ro.sync.net.protocol.http.b.d.j(Unknown Source)
at ro.sync.net.protocol.http.abstraction.o.q(Unknown Source)
at ro.sync.net.protocol.http.abstraction.o.f(Unknown Source)
at ro.sync.net.protocol.http.WebdavHttpURLConnection.getInputStream(Unknown
Source)
at ro.sync.net.protocol.http.WebdavHttpURLConnection.getResponseCode(Unknown
Source)
at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:394)
at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285)
... 53 more
Thanks Adam.
</pre>
</blockquote>
<br>
</div>
<br>
_______________________________________________<br>
oXygen-sdk mailing list<br>
<a moz-do-not-send="true"
href="mailto:oXygen-sdk@oxygenxml.com">oXygen-sdk@oxygenxml.com</a><br>
<a moz-do-not-send="true"
href="https://www.oxygenxml.com/mailman/listinfo/oxygen-sdk"
rel="noreferrer" target="_blank">https://www.oxygenxml.com/mailman/listinfo/oxygen-sdk</a><br>
<br>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>