<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>