You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2016/04/13 18:10:02 UTC
cxf git commit: Fixing some potential Null dereferences in the
codebase
Repository: cxf
Updated Branches:
refs/heads/master 8215aeb4a -> 6566e5c6e
Fixing some potential Null dereferences in the codebase
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/6566e5c6
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/6566e5c6
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/6566e5c6
Branch: refs/heads/master
Commit: 6566e5c6e7a3ae27965f14788b4002e80eaf9d46
Parents: 8215aeb
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Wed Apr 13 12:23:39 2016 +0100
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Wed Apr 13 16:19:55 2016 +0100
----------------------------------------------------------------------
.../org/apache/cxf/common/jaxb/JAXBUtils.java | 6 ++++-
.../cxf/interceptor/FaultOutInterceptor.java | 5 ++--
.../cxf/xmlbeans/XmlBeansWrapperHelper.java | 6 +++--
.../interceptors/WrapperClassInInterceptor.java | 8 ++-----
.../apache/cxf/transport/jms/util/JMSUtil.java | 4 +++-
.../ws/addressing/impl/MAPAggregatorTest.java | 2 +-
.../cxf/ws/rm/RMCaptureOutInterceptor.java | 5 ++--
.../systest/sts/issueunit/IssueUnitTest.java | 8 +++----
.../apache/cxf/systest/jaxrs/JMSBookStore.java | 6 +++--
.../cxf/systest/jaxrs/jms/JAXRSJmsTest.java | 24 +++++++++++++-------
.../processors/idl/ConstrTypeSpecVisitor.java | 8 ++++---
.../processor/internal/ParameterProcessor.java | 4 ++--
.../processor/internal/ServiceProcessor.java | 5 ++++
.../tools/wsdlto/jaxws/JAXWSContainerTest.java | 1 +
14 files changed, 57 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
index f8a21d0..9ff8800 100644
--- a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
@@ -676,7 +676,11 @@ public final class JAXBUtils {
}
}
-
+
+ if (ctx == null) {
+ throw new JAXBException("No ctx found");
+ }
+
Object bridge = ctx.getClass().getMethod("createBridge", refClass).invoke(ctx, ref);
return ReflectionInvokationHandler.createProxyWrapper(bridge,
BridgeWrapper.class);
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/core/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
index 22bf984..2a9cf80 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
@@ -157,11 +157,10 @@ public class FaultOutInterceptor extends AbstractPhaseInterceptor<Message> {
FaultInfo faultInfo = bfi.getFaultInfo();
Class<?> c = (Class<?>)faultInfo.getProperty(Class.class.getName());
- if (c != null && c.isAssignableFrom(class1)
- && (selectedFaultInfo == null || selectedFaultInfoClass.isAssignableFrom(c))) {
+ if (c != null && c.isAssignableFrom(class1) && (selectedFaultInfo == null
+ || (selectedFaultInfoClass != null && selectedFaultInfoClass.isAssignableFrom(c)))) {
selectedFaultInfo = faultInfo;
selectedFaultInfoClass = c;
-
}
}
return selectedFaultInfo;
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/XmlBeansWrapperHelper.java
----------------------------------------------------------------------
diff --git a/rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/XmlBeansWrapperHelper.java b/rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/XmlBeansWrapperHelper.java
index 6b41ebe..c98de9b 100644
--- a/rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/XmlBeansWrapperHelper.java
+++ b/rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/XmlBeansWrapperHelper.java
@@ -56,8 +56,10 @@ public class XmlBeansWrapperHelper extends AbstractWrapperHelper {
Method method = c.getMethod("newInstance", NO_CLASSES);
obj = method.invoke(null, NO_PARAMS);
}
- // create the value object
- obj = newType.invoke(obj, NO_PARAMS);
+ if (newType != null) {
+ // create the value object
+ obj = newType.invoke(obj, NO_PARAMS);
+ }
break;
}
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassInInterceptor.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassInInterceptor.java
index 316cc46..7291478 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassInInterceptor.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassInInterceptor.java
@@ -107,12 +107,8 @@ public class WrapperClassInInterceptor extends AbstractPhaseInterceptor<Message>
MessagePartInfo wrapperPart = wrappedMessageInfo.getFirstMessagePart();
Class<?> wrapperClass = wrapperPart.getTypeClass();
Object wrappedObject = lst.get(wrapperPart.getIndex());
- if (wrapperClass != null && !wrapperClass.isInstance(wrappedObject)) {
- wrappedObject = null;
- wrapperPart = null;
- wrapperClass = null;
- }
- if (wrapperClass == null || wrappedObject == null) {
+ if (wrapperClass == null || wrappedObject == null
+ || (wrapperClass != null && !wrapperClass.isInstance(wrappedObject))) {
return;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/util/JMSUtil.java
----------------------------------------------------------------------
diff --git a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/util/JMSUtil.java b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/util/JMSUtil.java
index 634cffa..ecb2b3b 100644
--- a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/util/JMSUtil.java
+++ b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/util/JMSUtil.java
@@ -103,7 +103,9 @@ public final class JMSUtil {
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
return session.createQueue(name);
} finally {
- session.close();
+ if (session != null) {
+ session.close();
+ }
}
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/impl/MAPAggregatorTest.java
----------------------------------------------------------------------
diff --git a/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/impl/MAPAggregatorTest.java b/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/impl/MAPAggregatorTest.java
index 0e9c1d0..4be1fc7 100644
--- a/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/impl/MAPAggregatorTest.java
+++ b/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/impl/MAPAggregatorTest.java
@@ -694,7 +694,7 @@ public class MAPAggregatorTest extends Assert {
AddressingProperties maps = mapsInContext
? new AddressingProperties()
: null;
- if (zeroLengthAction) {
+ if (zeroLengthAction && maps != null) {
maps.setAction(ContextUtils.getAttributedURI(""));
}
setUpMessageProperty(message,
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMCaptureOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMCaptureOutInterceptor.java b/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMCaptureOutInterceptor.java
index 298ddcd..6890201 100644
--- a/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMCaptureOutInterceptor.java
+++ b/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMCaptureOutInterceptor.java
@@ -181,8 +181,9 @@ public class RMCaptureOutInterceptor extends AbstractRMInterceptor<Message> {
maps.getAction().setValue(constants.getCreateSequenceResponseAction());
} else if (isPartialResponse && action == null
&& isResponseToAction(msg, constants.getSequenceAckAction())) {
- Collection<SequenceAcknowledgement> acks = rmpsIn.getAcks();
- if (acks.size() == 1) {
+ Collection<SequenceAcknowledgement> acks =
+ rmpsIn != null ? rmpsIn.getAcks() : null;
+ if (acks != null && acks.size() == 1) {
SourceSequence ss = source.getSequence(acks.iterator().next().getIdentifier());
if (ss != null && ss.allAcknowledged()) {
setAction(maps, constants.getTerminateSequenceAction());
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/services/sts/systests/basic/src/test/java/org/apache/cxf/systest/sts/issueunit/IssueUnitTest.java
----------------------------------------------------------------------
diff --git a/services/sts/systests/basic/src/test/java/org/apache/cxf/systest/sts/issueunit/IssueUnitTest.java b/services/sts/systests/basic/src/test/java/org/apache/cxf/systest/sts/issueunit/IssueUnitTest.java
index 1b27208..8eb80e3 100644
--- a/services/sts/systests/basic/src/test/java/org/apache/cxf/systest/sts/issueunit/IssueUnitTest.java
+++ b/services/sts/systests/basic/src/test/java/org/apache/cxf/systest/sts/issueunit/IssueUnitTest.java
@@ -250,7 +250,7 @@ public class IssueUnitTest extends AbstractBusClientServerTestBase {
if (methods != null && methods.size() > 0) {
confirmMethod = methods.get(0);
}
- assertTrue(confirmMethod.contains("bearer"));
+ assertTrue(confirmMethod != null && confirmMethod.contains("bearer"));
bus.shutdown(true);
}
@@ -349,7 +349,7 @@ public class IssueUnitTest extends AbstractBusClientServerTestBase {
if (methods != null && methods.size() > 0) {
confirmMethod = methods.get(0);
}
- assertTrue(confirmMethod.contains("bearer"));
+ assertTrue(confirmMethod != null && confirmMethod.contains("bearer"));
bus.shutdown(true);
}
@@ -386,7 +386,7 @@ public class IssueUnitTest extends AbstractBusClientServerTestBase {
if (methods != null && methods.size() > 0) {
confirmMethod = methods.get(0);
}
- assertTrue(confirmMethod.contains("bearer"));
+ assertTrue(confirmMethod != null && confirmMethod.contains("bearer"));
bus.shutdown(true);
}
@@ -453,7 +453,7 @@ public class IssueUnitTest extends AbstractBusClientServerTestBase {
if (methods != null && methods.size() > 0) {
confirmMethod = methods.get(0);
}
- assertTrue(confirmMethod.contains("bearer"));
+ assertTrue(confirmMethod != null && confirmMethod.contains("bearer"));
assertTrue("b-issuer".equals(assertion.getIssuerString()));
String subjectName = assertion.getSaml2().getSubject().getNameID().getValue();
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JMSBookStore.java
----------------------------------------------------------------------
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JMSBookStore.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JMSBookStore.java
index db0b43c..5b3c72e 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JMSBookStore.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JMSBookStore.java
@@ -140,8 +140,10 @@ public class JMSBookStore {
session.close();
} finally {
try {
- connection.stop();
- connection.close();
+ if (connection != null) {
+ connection.stop();
+ connection.close();
+ }
} catch (JMSException ex) {
// ignore
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/jms/JAXRSJmsTest.java
----------------------------------------------------------------------
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/jms/JAXRSJmsTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/jms/JAXRSJmsTest.java
index b7e6a21..4cf23e4 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/jms/JAXRSJmsTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/jms/JAXRSJmsTest.java
@@ -125,8 +125,10 @@ public class JAXRSJmsTest extends AbstractBusClientServerTestBase {
session.close();
} finally {
try {
- connection.stop();
- connection.close();
+ if (connection != null) {
+ connection.stop();
+ connection.close();
+ }
} catch (JMSException ex) {
// ignore
}
@@ -214,8 +216,10 @@ public class JAXRSJmsTest extends AbstractBusClientServerTestBase {
session.close();
} finally {
try {
- connection.stop();
- connection.close();
+ if (connection != null) {
+ connection.stop();
+ connection.close();
+ }
} catch (JMSException ex) {
// ignore
}
@@ -242,8 +246,10 @@ public class JAXRSJmsTest extends AbstractBusClientServerTestBase {
session.close();
} finally {
try {
- connection.stop();
- connection.close();
+ if (connection != null) {
+ connection.stop();
+ connection.close();
+ }
} catch (JMSException ex) {
// ignore
}
@@ -269,8 +275,10 @@ public class JAXRSJmsTest extends AbstractBusClientServerTestBase {
session.close();
} finally {
try {
- connection.stop();
- connection.close();
+ if (connection != null) {
+ connection.stop();
+ connection.close();
+ }
} catch (JMSException ex) {
// ignore
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ConstrTypeSpecVisitor.java
----------------------------------------------------------------------
diff --git a/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ConstrTypeSpecVisitor.java b/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ConstrTypeSpecVisitor.java
index 2e4533c..cd12ffc 100644
--- a/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ConstrTypeSpecVisitor.java
+++ b/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ConstrTypeSpecVisitor.java
@@ -63,10 +63,12 @@ public class ConstrTypeSpecVisitor extends VisitorBase {
visitor = new EnumVisitor(getScope(), definition, schema, wsdlVisitor);
}
- visitor.visit(node);
+ if (visitor != null) {
+ visitor.visit(node);
- setSchemaType(visitor.getSchemaType());
- setCorbaType(visitor.getCorbaType());
+ setSchemaType(visitor.getSchemaType());
+ setCorbaType(visitor.getCorbaType());
+ }
}
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
----------------------------------------------------------------------
diff --git a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
index 6978740..cd5943f 100644
--- a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
+++ b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
@@ -423,7 +423,7 @@ public class ParameterProcessor extends AbstractProcessor {
if (!qualified && !isRefElement(outputPart, outElement)) {
jp.setTargetNamespace("");
}
- if (!jpIn.getClassName().equals(jp.getClassName())) {
+ if (jpIn != null && !jpIn.getClassName().equals(jp.getClassName())) {
jp.setStyle(JavaType.Style.OUT);
}
addParameter(outputPart, method, jp);
@@ -475,7 +475,7 @@ public class ParameterProcessor extends AbstractProcessor {
if (!qualified && !isRefElement(outputPart, outElement)) {
jp.setTargetNamespace("");
}
- if (!jpIn.getClassName().equals(jp.getClassName())) {
+ if (jpIn != null && !jpIn.getClassName().equals(jp.getClassName())) {
jp.setStyle(JavaType.Style.OUT);
checkPartName(outputMessage, outElement, jp);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
----------------------------------------------------------------------
diff --git a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
index e2b7e5b..e0980a0 100644
--- a/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
+++ b/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
@@ -345,6 +345,11 @@ public class ServiceProcessor extends AbstractProcessor {
jf = jf2;
}
}
+
+ if (jf == null) {
+ throw new ToolException("No Java Interface available");
+ }
+
if (isSoapBinding()) {
SoapBinding soapBinding = (SoapBinding)bindingObj;
if (SOAPBindingUtil.getSoapStyle(soapBinding.getStyle()) == null) {
http://git-wip-us.apache.org/repos/asf/cxf/blob/6566e5c6/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/JAXWSContainerTest.java
----------------------------------------------------------------------
diff --git a/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/JAXWSContainerTest.java b/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/JAXWSContainerTest.java
index e66cd8a..f99416b 100644
--- a/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/JAXWSContainerTest.java
+++ b/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/JAXWSContainerTest.java
@@ -188,6 +188,7 @@ public class JAXWSContainerTest extends ProcessorTestBase {
}
}
assertTrue(methodSame);
+ assertNotNull(m1);
assertEquals(2, m1.getExceptions().size());
List<String> names = new ArrayList<String>();