You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ge...@apache.org on 2009/06/04 21:30:41 UTC
svn commit: r781836 - in /servicemix/smx4/nmr/trunk/jbi/deployer/src:
main/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListener.java
test/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListenerTest.java
Author: gertv
Date: Thu Jun 4 19:30:41 2009
New Revision: 781836
URL: http://svn.apache.org/viewvc?rev=781836&view=rev
Log:
SMX4NMR-136: Avoid NPE in AssemblyReferencesListener when sending from Endpoint with unknown SA
Modified:
servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListener.java
servicemix/smx4/nmr/trunk/jbi/deployer/src/test/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListenerTest.java
Modified: servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListener.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListener.java?rev=781836&r1=781835&r2=781836&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListener.java (original)
+++ servicemix/smx4/nmr/trunk/jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListener.java Thu Jun 4 19:30:41 2009
@@ -107,7 +107,9 @@
private void pending(InternalExchange exchange) {
ServiceAssembly assembly = endpoints.get(exchange.getSource());
- pending.put(exchange, assembly);
+ if (assembly != null) {
+ pending.put(exchange, assembly);
+ }
}
public void exchangeDelivered(Exchange exchange) {
Modified: servicemix/smx4/nmr/trunk/jbi/deployer/src/test/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListenerTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/jbi/deployer/src/test/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListenerTest.java?rev=781836&r1=781835&r2=781836&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/jbi/deployer/src/test/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListenerTest.java (original)
+++ servicemix/smx4/nmr/trunk/jbi/deployer/src/test/java/org/apache/servicemix/jbi/deployer/artifacts/AssemblyReferencesListenerTest.java Thu Jun 4 19:30:41 2009
@@ -115,6 +115,20 @@
assertEquals(Status.Error, exchange.getStatus());
}
+ public void testNoExceptionsOnUnknownExchange() throws Exception {
+ AssemblyReferencesListener listener = new AssemblyReferencesListener();
+ InternalEndpoint endpoint = new InternalEndpointWrapper(new EndpointImpl(ServiceHelper.createMap(Endpoint.ENDPOINT_NAME, "endpoint")),
+ ServiceHelper.createMap(Endpoint.ENDPOINT_NAME, "internal-endpoint"));
+
+ InternalExchange exchange = new ExchangeImpl(Pattern.InOnly);
+ exchange.setSource(endpoint);
+ exchange.setProperty(DeliveryChannelImpl.SEND_SYNC, Boolean.TRUE);
+ exchange.getConsumerLock(true);
+
+ // this should not throw an exception
+ listener.exchangeSent(exchange);
+ }
+
private ServiceAssemblyImpl createServiceAssembly() {
ServiceAssemblyDesc descriptor = DescriptorFactory.buildDescriptor(DescriptorFactory.class.getResource("serviceAssembly.xml")).getServiceAssembly();
final Preferences prefs = createMock(Preferences.class);