camel-flatpack does not work inside of an OSGi bundle in ServiceMix 4
---------------------------------------------------------------------

                 Key: CAMEL-1788
                 URL: https://issues.apache.org/activemq/browse/CAMEL-1788
             Project: Apache Camel
          Issue Type: Bug
          Components: camel-flatpack
    Affects Versions: 1.6.0
         Environment: Flatpack 3.1.1
Fuse ESB 4.1.0.0 (Apache Servicemix)
Camel 1.6.0.0-fuse
            Reporter: Scott Parkerson


The following code will not work under Servicemix, but works fine in standalone 
Camel:

{code:java}
        FlatpackDataFormat fpdf = new FlatpackDataFormat();
        fpdf.setDefinition(new ClassPathResource("dataspecs/mypzmap.xml"));
        fpdf.setFixed(false);
        fpdf.setDelimiter('|');
        fpdf.setIgnoreFirstRecord(false);

        from("activemq:" + 
incomingQueueName).convertBodyTo(String.class).unmarshal(fpdf).to("activemq:input_to_call");
{code}

This NPEs when attempting to unmarshal under SMX 4, but works fine in Camel 
1.6.x. I've traced down the problem to this code in Flatpack: 

{code:title=net/sf/flatpack/util/ParseUtils.java}

    public static Properties loadConvertProperties() throws IOException {
        final Properties pzConvertProps = new Properties();
        final URL url = 
ParserUtils.class.getClassLoader().getResource("fpconvert.properties");
        pzConvertProps.load(url.openStream());

        return pzConvertProps;
    }
{code}

The classloader under SMX is the bundle's classloader, which (of course) cannot 
find fpconvert.properties, which makes url null, and then causes 
pzConvertProps.load(...) to raise an NPE.

I know that this isn't strictly a bug in Camel or SMX, but I thought I'd file 
it here as an action item to either change upstream flatpack or note a possible 
workaround on the wiki.

I suspect that this is a problem with all versions of Camel + SMX including the 
latest version.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to