You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/07/08 04:08:13 UTC
svn commit: r792018 - in /cxf/branches/2.1.x-fixes: ./
api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
Author: dkulp
Date: Wed Jul 8 02:08:13 2009
New Revision: 792018
URL: http://svn.apache.org/viewvc?rev=792018&view=rev
Log:
Merged revisions 791955 via svnmerge from
https://svn.apache.org/repos/asf/cxf/branches/2.2.x-fixes
................
r791955 | dkulp | 2009-07-07 15:45:33 -0400 (Tue, 07 Jul 2009) | 9 lines
Merged revisions 791947 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r791947 | dkulp | 2009-07-07 15:26:39 -0400 (Tue, 07 Jul 2009) | 1 line
[CXF-2307] Update logging levels for exceptions
........
................
Modified:
cxf/branches/2.1.x-fixes/ (props changed)
cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jul 8 02:08:13 2009
@@ -1,2 +1,2 @@
-/cxf/branches/2.2.x-fixes:743446,753380,753397,753421,754585,755365,757499,757859,757899,757935,757951,758195,758303,758308,758378,758690,758910,759890,759961,759963-759964,759966,760029,760073,760150,760171,760178,760198,760212,760456,760468,760582,760938,761094,761113,761120,761317,761759,761789,762393,762518,762567,763200,763272,763495,763854,763931,763942,763953,764033-764034,764581,764599-764606,764887,765357,766013,766058,766100-766101,766763,766770,766860,766962-766963,767159,767191,767927,771416,772143,772402,772658,772714,773009-773010,773027,773049,773146,773581,773691,773693,774446-774496,774558,774760,774851,774979,775423,776024-776025,776218,776429,776459,777189,777224,777243,777481,777505,777572,777580,780033,780184,780213,780421,780664,780800,780902,780911,781497,781841,782733,782735-782736,783099,783407,784064,784197,785293,785296,785298-785299,785301,785656,786158,786587,786589,786591-786592,786640,787272,787276,787282-787283,787285,787295,787307,787324,7873
67,788824-788825,788827-788828,788830,789423,789429,789707,789709-789710,789712,789721,789905,789908,789910,789912,790295,790646-790647,790651,790654-790655,790659,791948,791950,791952
-/cxf/trunk:782181,782728-782730,783097,783396,784059,784181,784895,785279-785282,785468,786142,786271,786395,786582-786583,786638,786647,787269,787277-787279,787290,787305,787323,787366,788060,788187,788703,788774,788820,789371,789420,789527-789529,789704-789705,789896,789898-789900,790294,790637-790644,791354,791538,791753
+/cxf/branches/2.2.x-fixes:743446,753380,753397,753421,754585,755365,757499,757859,757899,757935,757951,758195,758303,758308,758378,758690,758910,759890,759961,759963-759964,759966,760029,760073,760150,760171,760178,760198,760212,760456,760468,760582,760938,761094,761113,761120,761317,761759,761789,762393,762518,762567,763200,763272,763495,763854,763931,763942,763953,764033-764034,764581,764599-764606,764887,765357,766013,766058,766100-766101,766763,766770,766860,766962-766963,767159,767191,767927,771416,772143,772402,772658,772714,773009-773010,773027,773049,773146,773581,773691,773693,774446-774496,774558,774760,774851,774979,775423,776024-776025,776218,776429,776459,777189,777224,777243,777481,777505,777572,777580,780033,780184,780213,780421,780664,780800,780902,780911,781497,781841,782733,782735-782736,783099,783407,784064,784197,785293,785296,785298-785299,785301,785656,786158,786587,786589,786591-786592,786640,787272,787276,787282-787283,787285,787295,787307,787324,7873
67,788824-788825,788827-788828,788830,789423,789429,789707,789709-789710,789712,789721,789905,789908,789910,789912,790295,790646-790647,790651,790654-790655,790659,791948,791950,791952,791955
+/cxf/trunk:782181,782728-782730,783097,783396,784059,784181,784895,785279-785282,785468,786142,786271,786395,786582-786583,786638,786647,787269,787277-787279,787290,787305,787323,787366,788060,788187,788703,788774,788820,789371,789420,789527-789529,789704-789705,789896,789898-789900,790294,790637-790644,791354,791538,791753,791947
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java?rev=792018&r1=792017&r2=792018&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java (original)
+++ cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java Wed Jul 8 02:08:13 2009
@@ -57,6 +57,7 @@
private static final Logger LOG = LogUtils.getL7dLogger(PhaseInterceptorChain.class);
+ private static final ThreadLocal<Message> CURRENT_MESSAGE = new ThreadLocal<Message>();
private final Map<String, Integer> nameMap;
private final Phase phases[];
@@ -85,6 +86,7 @@
private boolean faultOccurred;
+
private PhaseInterceptorChain(PhaseInterceptorChain src) {
//only used for clone
state = State.EXECUTING;
@@ -139,6 +141,10 @@
}
}
+ public static Message getCurrentMessage() {
+ return CURRENT_MESSAGE.get();
+ }
+
// this method should really be on the InterceptorChain interface
public State getState() {
return state;
@@ -216,71 +222,79 @@
updateIterator();
boolean isFineLogging = LOG.isLoggable(Level.FINE);
pausedMessage = message;
- while (state == State.EXECUTING && iterator.hasNext()) {
- try {
- Interceptor currentInterceptor = iterator.next();
- if (isFineLogging) {
- LOG.fine("Invoking handleMessage on interceptor " + currentInterceptor);
- }
- //System.out.println("-----------" + currentInterceptor);
- currentInterceptor.handleMessage(message);
- } catch (SuspendedInvocationException ex) {
- // we need to resume from the same interceptor the exception got originated from
- if (iterator.hasPrevious()) {
- iterator.previous();
- }
- pause();
- throw ex;
- } catch (RuntimeException ex) {
- if (!faultOccurred) {
-
- faultOccurred = true;
-
- FaultMode mode = message.get(FaultMode.class);
- if (mode == FaultMode.CHECKED_APPLICATION_FAULT) {
- if (LOG.isLoggable(Level.FINE)) {
- LogUtils.log(LOG, Level.FINE,
- "Application has thrown exception, unwinding now", ex);
- } else if (LOG.isLoggable(Level.INFO)) {
- Throwable t = ex;
- if (ex instanceof Fault
- && ex.getCause() != null) {
- t = ex.getCause();
- }
-
- LogUtils.log(LOG, Level.INFO,
- "Application has thrown exception, unwinding now: "
- + t.getClass().getName()
- + ": " + ex.getMessage());
- }
- } else if (LOG.isLoggable(Level.INFO)) {
- if (mode == FaultMode.UNCHECKED_APPLICATION_FAULT) {
- LogUtils.log(LOG, Level.INFO,
- "Application has thrown exception, unwinding now", ex);
- } else {
- LogUtils.log(LOG, Level.INFO,
- "Interceptor has thrown exception, unwinding now", ex);
- }
- }
- message.setContent(Exception.class, ex);
- if (message.getExchange() != null) {
- message.getExchange().put(Exception.class, ex);
- }
- unwind(message);
+ Message oldMessage = CURRENT_MESSAGE.get();
+ try {
+ CURRENT_MESSAGE.set(message);
+ while (state == State.EXECUTING && iterator.hasNext()) {
+ try {
+ Interceptor currentInterceptor = iterator.next();
+ if (isFineLogging) {
+ LOG.fine("Invoking handleMessage on interceptor " + currentInterceptor);
+ }
+ //System.out.println("-----------" + currentInterceptor);
+ currentInterceptor.handleMessage(message);
+ } catch (SuspendedInvocationException ex) {
+ // we need to resume from the same interceptor the exception got originated from
+ if (iterator.hasPrevious()) {
+ iterator.previous();
+ }
+ pause();
+ throw ex;
+ } catch (RuntimeException ex) {
- if (faultObserver != null) {
- faultObserver.onMessage(message);
+ if (!faultOccurred) {
+
+ faultOccurred = true;
+
+ FaultMode mode = message.get(FaultMode.class);
+ if (mode == FaultMode.CHECKED_APPLICATION_FAULT) {
+ if (LOG.isLoggable(Level.FINE)) {
+ LogUtils.log(LOG, Level.FINE,
+ "Application has thrown exception, unwinding now", ex);
+ } else if (LOG.isLoggable(Level.INFO)) {
+ Throwable t = ex;
+ if (ex instanceof Fault
+ && ex.getCause() != null) {
+ t = ex.getCause();
+ }
+
+ LogUtils.log(LOG, Level.INFO,
+ "Application has thrown exception, unwinding now: "
+ + t.getClass().getName()
+ + ": " + ex.getMessage());
+ }
+ } else if (LOG.isLoggable(Level.WARNING)) {
+ if (mode == FaultMode.UNCHECKED_APPLICATION_FAULT) {
+ LogUtils.log(LOG, Level.WARNING,
+ "Application has thrown exception, unwinding now", ex);
+ } else {
+ LogUtils.log(LOG, Level.WARNING,
+ "Interceptor has thrown exception, unwinding now", ex);
+ }
+ }
+
+ message.setContent(Exception.class, ex);
+ if (message.getExchange() != null) {
+ message.getExchange().put(Exception.class, ex);
+ }
+ unwind(message);
+
+ if (faultObserver != null) {
+ faultObserver.onMessage(message);
+ }
}
- }
- state = State.ABORTED;
- }
- }
- if (state == State.EXECUTING) {
- state = State.COMPLETE;
- pausedMessage = null;
+ state = State.ABORTED;
+ }
+ }
+ if (state == State.EXECUTING) {
+ state = State.COMPLETE;
+ pausedMessage = null;
+ }
+ return state == State.COMPLETE;
+ } finally {
+ CURRENT_MESSAGE.set(oldMessage);
}
- return state == State.COMPLETE;
}
/**
@@ -344,8 +358,12 @@
}
try {
currentInterceptor.handleFault(message);
+ } catch (RuntimeException e) {
+ LOG.log(Level.WARNING, "Exception in handleFault on interceptor " + currentInterceptor, e);
+ throw e;
} catch (Exception e) {
- LOG.log(Level.WARNING, "Exception in handleFault on interceptor " + currentInterceptor, e);
+ LOG.log(Level.WARNING, "Exception in handleFault on interceptor " + currentInterceptor, e);
+ throw new RuntimeException(e);
}
}
}