You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by em...@apache.org on 2014/07/07 08:44:08 UTC

[3/6] git commit: [CXF-5839]:ResponseTimeCounter doesn't count the schema validation fault

[CXF-5839]:ResponseTimeCounter doesn't count the schema validation fault


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/5588092c
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/5588092c
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/5588092c

Branch: refs/heads/master
Commit: 5588092cebb1a6a67299443b683dc871ca62f751
Parents: b7f754d
Author: Jim Ma <em...@apache.org>
Authored: Mon Jul 7 11:26:53 2014 +0800
Committer: Jim Ma <em...@apache.org>
Committed: Mon Jul 7 14:43:38 2014 +0800

----------------------------------------------------------------------
 .../management/counters/CounterRepository.java  |  5 +--
 .../ResponseTimeMessageInInterceptor.java       | 37 ++++++++++++--------
 2 files changed, 25 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/5588092c/rt/management/src/main/java/org/apache/cxf/management/counters/CounterRepository.java
----------------------------------------------------------------------
diff --git a/rt/management/src/main/java/org/apache/cxf/management/counters/CounterRepository.java b/rt/management/src/main/java/org/apache/cxf/management/counters/CounterRepository.java
index 3175ba7..f57657c 100644
--- a/rt/management/src/main/java/org/apache/cxf/management/counters/CounterRepository.java
+++ b/rt/management/src/main/java/org/apache/cxf/management/counters/CounterRepository.java
@@ -76,6 +76,7 @@ public class CounterRepository {
         bus.getInInterceptors().add(in);
         bus.getInInterceptors().add(invoker);
         bus.getOutInterceptors().add(out);
+        bus.getOutFaultInterceptors().add(out);
         bus.setExtension(this, CounterRepository.class); 
         
         //create CounterRepositroyMoniter to writer the counter log
@@ -91,7 +92,7 @@ public class CounterRepository {
                 // check if the counter has been created during the locked time
                 counter = getCounter(on);
                 if (counter == null) {
-                    counter = createCounter(on, mhtr);
+                    counter = createCounter(on);
                     counters.put(on, counter);
                 }
             } finally {
@@ -109,7 +110,7 @@ public class CounterRepository {
         return counters.get(on);
     }
     
-    public Counter createCounter(ObjectName on, MessageHandlingTimeRecorder mhtr) {
+    public Counter createCounter(ObjectName on) {
         Counter counter = null;
         counter = new ResponseTimeCounter(on);
         InstrumentationManager im = bus.getExtension(InstrumentationManager.class);

http://git-wip-us.apache.org/repos/asf/cxf/blob/5588092c/rt/management/src/main/java/org/apache/cxf/management/interceptor/ResponseTimeMessageInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/management/src/main/java/org/apache/cxf/management/interceptor/ResponseTimeMessageInInterceptor.java b/rt/management/src/main/java/org/apache/cxf/management/interceptor/ResponseTimeMessageInInterceptor.java
index 6c6f9a4..04dd0be 100644
--- a/rt/management/src/main/java/org/apache/cxf/management/interceptor/ResponseTimeMessageInInterceptor.java
+++ b/rt/management/src/main/java/org/apache/cxf/management/interceptor/ResponseTimeMessageInInterceptor.java
@@ -19,6 +19,7 @@
 
 package org.apache.cxf.management.interceptor;
 
+import org.apache.cxf.interceptor.AttachmentInInterceptor;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.message.Exchange;
 import org.apache.cxf.message.FaultMode;
@@ -28,29 +29,35 @@ import org.apache.cxf.phase.Phase;
 public class ResponseTimeMessageInInterceptor extends AbstractMessageResponseTimeInterceptor {
     
     public ResponseTimeMessageInInterceptor() {
-        super(Phase.POST_LOGICAL);
+        super(Phase.RECEIVE);
+        addBefore(AttachmentInInterceptor.class.getName());
     }
     
-    public void handleMessage(Message message) throws Fault {
-        
-        Exchange ex = message.getExchange();        
-        if (isClient(message)) {
-            if (!ex.isOneWay()) {
-                endHandlingMessage(ex);
+    public void handleMessage(Message message) throws Fault {        
+        Exchange ex = message.getExchange();
+        //if serviceCounter is disabled , all responseTimeInterceptors will be skipped
+        Boolean forceDisabled = Boolean.FALSE.equals((Boolean)ex.get("org.apache.cxf.management.counter.enabled"));
+        if (isServiceCounterEnabled(ex) && !forceDisabled) {           
+            ex.put("org.apache.cxf.management.counter.enabled", true);
+            if (isClient(message)) {
+                if (!ex.isOneWay()) {
+                    endHandlingMessage(ex);
+                }
+            } else {
+                beginHandlingMessage(ex);
             }
-        } else {            
-            beginHandlingMessage(ex);            
         }
     }    
     
     @Override
-    public void handleFault(Message message) {
+    public void handleFault(Message message) {     
         Exchange ex = message.getExchange();
-        FaultMode mode = message.get(FaultMode.class);
-        if (mode == null) {
-            mode = FaultMode.RUNTIME_FAULT;
+        if (Boolean.TRUE.equals((Boolean)ex.get("org.apache.cxf.management.counter.enabled"))) {
+            FaultMode mode = message.get(FaultMode.class);
+            if (mode == null) {
+                mode = FaultMode.UNCHECKED_APPLICATION_FAULT;
+            }
+            ex.put(FaultMode.class, mode);
         }
-        ex.put(FaultMode.class, mode);
-        endHandlingMessage(ex);
     }
 }