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); } } }
