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;