camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ioca...@apache.org
Subject svn commit: r1240577 - /camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
Date Sat, 04 Feb 2012 18:23:18 GMT
Author: iocanel
Date: Sat Feb  4 18:23:18 2012
New Revision: 1240577

URL: http://svn.apache.org/viewvc?rev=1240577&view=rev
Log:
[CAMEL-4859] Fixed possible NPE during avro component initiallization.

Modified:
    camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java

Modified: camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java?rev=1240577&r1=1240576&r2=1240577&view=diff
==============================================================================
--- camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
(original)
+++ camel/trunk/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
Sat Feb  4 18:23:18 2012
@@ -57,16 +57,9 @@ public class AvroComponent extends Defau
         } else {
             config = new AvroConfiguration();
         }
-        URI enpointUri = new URI(URISupport.normalizeUri(remaining));
-        config.parseURI(enpointUri, parameters, this);
-        setProperties(config, parameters);
 
-        if (config.getProtocol() == null && config.getProtocolClassName() != null)
{
-            Class<?> protocolClass = getCamelContext().getClassResolver().resolveClass(config.getProtocolClassName());
-            Field f = protocolClass.getField("PROTOCOL");
-            Protocol protocol = (Protocol) f.get(null);
-            config.setProtocol(protocol);
-        }
+        URI enpointUri = new URI(URISupport.normalizeUri(remaining));
+        applyToConfiguration(config, enpointUri, parameters);
 
         if (AvroConstants.AVRO_NETTY_TRANSPORT.equals(enpointUri.getScheme())) {
             return new AvroNettyEndpoint(remaining, this, config);
@@ -77,6 +70,33 @@ public class AvroComponent extends Defau
         }
     }
 
+    /**
+     * Applies enpoint parameters to configuration & resolves protocol and other required
configuration properties.
+     * @param config
+     * @param enpointUri
+     * @param parameters
+     * @throws Exception
+     */
+    private void applyToConfiguration(AvroConfiguration config, URI enpointUri, Map<String,
Object> parameters) throws Exception {
+        config.parseURI(enpointUri, parameters, this);
+        setProperties(config, parameters);
+
+        if (config.getProtocol() == null && config.getProtocolClassName() != null)
{
+            Class<?> protocolClass = getCamelContext().getClassResolver().resolveClass(config.getProtocolClassName());
+            if (protocolClass != null) {
+                Field f = protocolClass.getField("PROTOCOL");
+                if (f != null) {
+                    Protocol protocol = (Protocol) f.get(null);
+                    config.setProtocol(protocol);
+                }
+            }
+        }
+
+        if (config.getProtocol() == null) {
+            throw new IllegalArgumentException("Avro configuration does not contain protocol");
+        }
+    }
+
 
     public AvroConfiguration getConfiguration() {
         return configuration;



Mime
View raw message