after() throwing (Exception ex) : (!within(com.company.example..*) &&
call (* java.net.HttpURLConnection.getErrorStream()) ||
call (* java.net.HttpURLConnection.getResponseCode()) ||
call (* java.net.HttpURLConnection.getResponseMessage()) ||
call (* javax.net.ssl.HttpsURLConnection.getLocalCertificates()) ||
call (* javax.net.ssl.HttpsURLConnection.getCipherSuite()) ||
call (* javax.net.ssl.HttpsURLConnection.getServerCertificates()) ||
call (* javax.net.ssl.HttpsURLConnection.getPeerPrincipal()) ||
call (* javax.net.ssl.HttpsURLConnection.getLocalPrincipal()) ||
call (* java.net.URLConnection.connect()) ||
call (* java.net.URLConnection.getContent()) ||
call (* java.net.URLConnection.getContentEncoding()) ||
call (* java.net.URLConnection.getContentLength()) ||
call (* java.net.URLConnection.getContentType()) ||
call (* java.net.URLConnection.getDate()) ||
call (* java.net.URLConnection.getExpiration()) ||
call (* java.net.URLConnection.getHeaderField()) ||
call (* java.net.URLConnection.getHeaderFieldDate()) ||
call (* java.net.URLConnection.getHeaderFieldKey()) ||
call (* java.net.URLConnection.getHeaderFields()) ||
call (* java.net.URLConnection.getInputStream()) ||
call (* java.net.URLConnection.getLastModified()))
As far as I understand the way after throwing conditions are supposed to be defined this should still apply for any
of these getters except if they are thrown my project.
Keep in mind our Aspects aren't applied against our own code but against 3rd party code.
@AfterThrowing(pointcut="((!within(com.company.example..*) && call(* java.net.HttpURLConnection.getErrorStream())) || (call(* java.net.HttpURLConnection.getResponseCode()) || (call(* java.net.HttpURLConnection.getResponseMessage()) || (call(* javax.net.ssl.HttpsURLConnection.getLocalCertificates()) || (call(* javax.net.ssl.HttpsURLConnection.getCipherSuite()) || (call(* javax.net.ssl.HttpsURLConnection.getServerCertificates()) || (call(* javax.net.ssl.HttpsURLConnection.getPeerPrincipal()) || (call(* javax.net.ssl.HttpsURLConnection.getLocalPrincipal()) || (call(* java.net.URLConnection.connect()) || (call(* java.net.URLConnection.getContent()) || (call(* java.net.URLConnection.getContentEncoding()) || (call(* java.net.URLConnection.getContentLength()) || (call(* java.net.URLConnection.getContentType()) || (call(* java.net.URLConnection.getDate()) || (call(* java.net.URLConnection.getExpiration()) || (call(* java.net.URLConnection.getHeaderField()) || (call(* java.net.URLConnection.getHeaderFieldDate()) || (call(* java.net.URLConnection.getHeaderFieldKey()) || (call(* java.net.URLConnection.getHeaderFields()) || (call(* java.net.URLConnection.getInputStream()) || call(* java.net.URLConnection.getLastModified())))))))))))))))))))))", throwing="ex", argNames="ex")
As you can see the compiled result filters for each after one another? That shouldn't happen right?