You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2006/02/21 22:29:06 UTC
svn commit: r379593 -
/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
Author: dims
Date: Tue Feb 21 13:29:02 2006
New Revision: 379593
URL: http://svn.apache.org/viewcvs?rev=379593&view=rev
Log:
don't try to extract the duplicate stuff
Modified:
webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java?rev=379593&r1=379592&r2=379593&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java Tue Feb 21 13:29:02 2006
@@ -91,18 +91,21 @@
SOAPHeaderBlock soapHeaderBlock = (SOAPHeaderBlock) addressingHeadersIt.next();
EndpointReference epr;
if (WSA_TO.equals(soapHeaderBlock.getLocalName())) {
- checkForDuplicateHeaders(WSA_TO, messageContext, alreadyFoundAddrHeader);
- extractToEPRInformation(soapHeaderBlock, messageContextOptions, header);
+ if(!hasDuplicateHeaders(WSA_TO, messageContext, alreadyFoundAddrHeader)){
+ extractToEPRInformation(soapHeaderBlock, messageContextOptions, header);
+ }
} else if (WSA_FROM.equals(soapHeaderBlock.getLocalName())) {
- checkForDuplicateHeaders(WSA_FROM, messageContext, alreadyFoundAddrHeader);
- extractFromEPRInformation(messageContextOptions, soapHeaderBlock, addressingNamespace);
+ if(!hasDuplicateHeaders(WSA_FROM, messageContext, alreadyFoundAddrHeader)){
+ extractFromEPRInformation(messageContextOptions, soapHeaderBlock, addressingNamespace);
+ }
} else if (WSA_REPLY_TO.equals(soapHeaderBlock.getLocalName())) {
- checkForDuplicateHeaders(WSA_REPLY_TO, messageContext, alreadyFoundAddrHeader);
- extractReplyToEPRInformation(messageContextOptions, soapHeaderBlock, addressingNamespace);
+ if(!hasDuplicateHeaders(WSA_REPLY_TO, messageContext, alreadyFoundAddrHeader)){
+ extractReplyToEPRInformation(messageContextOptions, soapHeaderBlock, addressingNamespace);
+ }
} else if (WSA_FAULT_TO.equals(soapHeaderBlock.getLocalName())) {
- checkForDuplicateHeaders(WSA_FAULT_TO, messageContext, alreadyFoundAddrHeader);
-
- extractFaultToEPRInformation(messageContextOptions, soapHeaderBlock, addressingNamespace);
+ if(!hasDuplicateHeaders(WSA_FAULT_TO, messageContext, alreadyFoundAddrHeader)) {
+ extractFaultToEPRInformation(messageContextOptions, soapHeaderBlock, addressingNamespace);
+ }
} else if (WSA_MESSAGE_ID.equals(soapHeaderBlock.getLocalName())) {
messageContextOptions.setMessageId(soapHeaderBlock.getText());
soapHeaderBlock.setProcessed();
@@ -110,14 +113,15 @@
messageContextOptions.setAction(soapHeaderBlock.getText());
soapHeaderBlock.setProcessed();
} else if (WSA_RELATES_TO.equals(soapHeaderBlock.getLocalName())) {
- checkForDuplicateHeaders(WSA_RELATES_TO, messageContext, alreadyFoundAddrHeader);
- extractRelatesToInformation(soapHeaderBlock, addressingNamespace, messageContextOptions);
+ if(!hasDuplicateHeaders(WSA_RELATES_TO, messageContext, alreadyFoundAddrHeader)){
+ extractRelatesToInformation(soapHeaderBlock, addressingNamespace, messageContextOptions);
+ }
}
}
return messageContextOptions;
}
- private void checkForDuplicateHeaders(String addressingHeaderName, MessageContext messageContext, Map alreadyFoundAddressingHeaders) {
+ private boolean hasDuplicateHeaders(String addressingHeaderName, MessageContext messageContext, Map alreadyFoundAddressingHeaders) {
if (alreadyFoundAddressingHeaders.get(addressingHeaderName) != null) {
Map faultInformation = (Map) messageContext.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS);
if (faultInformation == null) {
@@ -125,9 +129,11 @@
messageContext.setProperty(Constants.FAULT_INFORMATION_FOR_HEADERS, faultInformation);
}
faultInformation.put(Final.FAULT_HEADER_PROB_HEADER_QNAME, "wsa:" + addressingHeaderName);
+ return true;
} else {
alreadyFoundAddressingHeaders.put(addressingHeaderName, addressingHeaderName);
}
+ return false;
}
protected abstract void extractToEprReferenceParameters(EndpointReference toEPR, SOAPHeader header);