Hi Community,

i got an error reading 4 directory (with 1 file per directory) in 4 routes
with file: endpoint.
I use Camel 2.16.1 and Spring 4.1.8 as well as Spring Boot 1.2.7.

After Compiling my code the app starts normal via Spring Boot but after
initializing my routes the
app crashes with error:

# A fatal error has been detected by the Java Runtime Environment:
(process:15444): GLib-GObject-CRITICAL **: g_object_new: assertion
`G_TYPE_IS_OBJECT (object_type)' failed
#
#  SIGSEGV (0xb) at pc=0x00007fd4f12ed5e9, pid=15444, tid=140552575444736
[thread 140552572286720 also had an error]
#
# JRE version: Java(TM) SE Runtime Environment (8.0_45-b14) (build
1.8.0_45-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.45-b02 mixed mode
linux-amd64 compressed oops)
# Problematic frame:
# C  [libglib-2.0.so.0+0x595e9]  g_slice_alloc+0x139
#
# Failed to write core dump. Core dumps have been disabled. To enable core
dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:

The saved error log can you see as an attachment:  error.log
<http://camel.465427.n5.nabble.com/file/n5776391/error.log>  

My routes are 4 classes (one for every directory) which got there routes
from a abstract base class.
Configuration is correct. So all parameters are set.

The main base route looks like:

from(producer())
                        // split document on each record
                        .split().xtokenize(splitPath(), extractionMode(),
namespaces()).streaming()
                                //.tokenizeXML(this.splitPath(), 
this.root()).streaming()
                                // threading
                                
.parallelProcessing().executorServiceRef(CamelConfig.THREAD_POOL_NAME)
                                // TODO filter by parameter
                                
//.filter(simple("${exchangeProperty.CamelSplitIndex} > 46000"))
                                //.setHeader(RECID, this.id())
                                .process(processor())
                                .to(consumer())
                                //.end() // filter
                        .end() // split
                .stop();

The next class implementing some of the parameter functions looks like

        protected String baseDir;

        @Override
        protected Processor processor()
        {
                return (exchange -> {
                        String body = exchange.getIn().getBody(String.class);

                        // remove whitespaces
                        body = body.trim();

                        RegEx regex = new RegEx(">\\s+<").exec(body);

                        body = regex.replaceAll("><");

                        // extract record id
                        regex = new RegEx(idExpression()).exec(body);

                        if(!regex.hits()) {
                                throw new IllegalArgumentException("Invalid 
XML-content detected: no
record id found.");
                        }

                        exchange.getIn().setBody(body, String.class);
                        exchange.getIn().setHeader(RECID, regex.group(1));
                });
        }

        protected String idExpression()
        {
                return "<WI WIID=\"(\\d+)\"";
        }

and the last level did the endpoint declaration for the directory:

@Override
        public Endpoint producer()
        {
                return endpoint("file:" + this.baseDir + "/srv" + "?noop=true");
        }

        @Override
        public Endpoint consumer()
        {
                return endpoint(WI_Aggregator.ENDPOINT);
        }

        @Override
        protected String splitPath()
        {
                return "/CENSRV/WI";
        }

Did somebody got an idea what to do?

Best regards

Hubertus



--
View this message in context: 
http://camel.465427.n5.nabble.com/Error-Reading-Files-from-four-different-Routes-tp5776391.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to