Repository: cxf Updated Branches: refs/heads/master b1c7e0eb4 -> 5d5f5e34b
Warning when JAX-RS methods are ambiguous, with thanks to Romain Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/d58606e5 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/d58606e5 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/d58606e5 Branch: refs/heads/master Commit: d58606e554418899e905cd2f3bc7e8c465eff451 Parents: 4e1149c Author: Sergey Beryozkin <[email protected]> Authored: Wed Jul 1 17:51:50 2015 +0100 Committer: Sergey Beryozkin <[email protected]> Committed: Wed Jul 1 17:51:50 2015 +0100 ---------------------------------------------------------------------- .../jaxrs/model/OperationResourceInfoComparator.java | 13 +++++++++++-- .../java/org/apache/cxf/jaxrs/utils/FormUtils.java | 4 +++- 2 files changed, 14 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/d58606e5/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java index 4ed790f..7fec333 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java @@ -22,17 +22,19 @@ package org.apache.cxf.jaxrs.model; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.logging.Logger; import javax.ws.rs.HttpMethod; import javax.ws.rs.core.MediaType; +import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.jaxrs.ext.DefaultMethod; import org.apache.cxf.jaxrs.ext.ResourceComparator; import org.apache.cxf.jaxrs.utils.JAXRSUtils; import org.apache.cxf.message.Message; public class OperationResourceInfoComparator implements Comparator<OperationResourceInfo> { - + private static final Logger LOG = LogUtils.getL7dLogger(JAXRSUtils.class); private String httpMethod; private boolean getMethod; private Message message; @@ -116,7 +118,14 @@ public class OperationResourceInfoComparator implements Comparator<OperationReso result = -1; } } - + if (result == 0) { + String m1Name = + e1.getClassResourceInfo().getServiceClass().getName() + "#" + e1.getMethodToInvoke().getName(); + String m2Name = + e2.getClassResourceInfo().getServiceClass().getName() + "#" + e2.getMethodToInvoke().getName(); + LOG.warning("Both " + m1Name + " and " + m2Name + " are equal candidates for handling the current request" + + " which can lead to unpredictable results"); + } return result; } http://git-wip-us.apache.org/repos/asf/cxf/blob/d58606e5/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java index b0eb85f..afee3bc 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java @@ -47,6 +47,7 @@ import org.apache.cxf.jaxrs.ext.multipart.MultipartBody; import org.apache.cxf.jaxrs.impl.MetadataMap; import org.apache.cxf.jaxrs.provider.FormEncodingProvider; import org.apache.cxf.message.Message; +import org.apache.cxf.message.MessageUtils; import org.apache.cxf.phase.PhaseInterceptorChain; public final class FormUtils { @@ -154,7 +155,8 @@ public final class FormUtils { javax.servlet.http.HttpServletRequest request) { if (!StringUtils.isEmpty(postBody)) { populateMapFromString(params, m, postBody, enc, decode); - } else if (request != null) { + } else if (request != null + && MessageUtils.getContextualBoolean(m, "set.form.parameters.from.http.parameters", true)) { for (Enumeration<String> en = request.getParameterNames(); en.hasMoreElements();) { String paramName = en.nextElement(); String[] values = request.getParameterValues(paramName);
