Servlet with Multiple Threads spawned automatically

Hi,
I have a problem involving threads in servlet as follows:
Scenario: I am working on developing a web application using Tomcat and Netbeans IDE. I have a servlet which gets values from the session object and then constructs a server-side object and invoke a method on the same. This method on the server-side object executes an INSERT query in the mysql database.
Problem Description: The INSERT query is invoked twice => the method on the server-side object is invoked twice, and 2 records with different keys are created in the database table.
Observation: When I used the debugger in the IDE, I discovered that there are 2 different threads that are getting spawned (which I did not design/code for) and these threads call the insert query on the table twice.
I am not sure why this is happening. Can someone please throw some light on this?
Thank you in advance.

The servlet has a number of multiple if-else blocks. In the last if-else block of the servlet code, I am getting some attributes from the session object, creating the server class object and setting the attributes of the object.
The 2-thread problem is occurring only when the the last block is reached. The 1st thread creates the server class and the 2nd thread executes the rest of the lines in the servlet and completes the INSERT query. This is followed by the 1st thread to insert a new record again.

Similar Messages

  • How do you disable "Run with Multiple Threads" in a standalone EXE

    I have a program written in Labview 6.1.  After moving to a different hardware platform, my program has started crashing at the same point every time it is run.  I eventually found out that the cause of the crash is the fact that the new hardware has a dual core processor.  I confirmed this by disabling "Run with multiple threads" and now the program works fine.  What I need to know now is how to disable the same setting in a built EXE file, since as far as I know the "Run with multple threads" setting only affects execution in the Labview Dev environment.
    Thanks for any help,
    Dave

    Greg McKaskle once posted that using a non-reentrant (VI is NOT re-entrant) wrapper VI to make the calls to the dll will prevent simultaneous execution of the dll.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Problem with multiple threads accessing the same Image

    I'm trying to draw into one Image from multiple threads. It works fine for a while, but then suddenly, the image stops updating. Threads are still running but the image won't update. I'm using doublebuffering and threads are simply drawing counters into Image with different speed.
    It seems like the Image gets deadlocked or something. Anyone have any idea what's behind this behavior or perhaps better solution to do such thing.
    Any help will be appreciated.

    Sorry Kglad, I didn't mean to be rude. With "No coding
    errors" I meant the animation itself runs with no errors. I'm sure
    you could run the 20 instances with no freezing (that's why I put
    the post :) ) But I'm affraid it is an animation for a client, so I
    cannot distribute the code.
    Perhaps I didnt explain the situation clearly enough (in part
    because of my poor english...).-
    - By 20 instances I mean 20 separated embedded objects in the
    html
    - The animation is relatively simple. A turned on candle, in
    each cycle I calculate the next position of the flame (that
    oscilates from left to right). The flame is composed by 4
    concentric gradients. There is NO loops, only an 'onEnterFrame'
    function refreshing the flame each time.
    - It's true that I got plenty variables at the _root level.
    If that could be the problem, how can I workaround it?
    - It is my first time trying to embed so many objects at the
    same time too. No idea if the problem could be the way I embed the
    object from the html :(
    - The only thing I can guess is that when a cycle of one of
    the object is running, the other 19 objects must wait their turn.
    That would explain why the more instances I run, the worst results
    I get. In that case, I wonder if there's a way to run them in a
    kind of asynchronous mode, just guessing...
    Any other comment would be appreciated. Anyway, thanks a lot
    everybody for your colaboration.

  • How to proces the record in Table with multiple threads using Pl/Sql & Java

    I have a table containing millions of records in it; and numbers of records also keep on increasing because of a high speed process populating this table.
    I want to process this table using multiple threads of java. But the condition is that each records should process only once by any of the thread. And after processing I need to delete that record from the table.
    Here is what I am thinking. I will put the code to process the records in PL/SQL procedure and call it by multiple threads of Java to make the processing concurrent.
    Java Thread.1 }
    Java Thread.2 }
    .....................} -------------> PL/SQL Procedure to process and delete Records ------> <<<Table >>>
    Java Thread.n }
    But the problem is how can I restrict a record not to pick by another thread while processing(So it should not processed multiple times) ?
    I am very much familiar with PL/SQL code. Only issue I am facing is How to fetch/process/delete the record only once.
    I can change the structure of table to add any new column if needed.
    Thanks in advance.
    Edited by: abhisheak123 on Aug 2, 2009 11:29 PM

    Check if you can use the bucket logic in your PLSQL code..
    By bucket I mean if you can make multiple buckets of your data to be processed so that each bucket contains the different rows and then call the PLSQL process in parallel.
    Lets say there is a column create_date and processed_flag in your table.
    Your PLSQL code should take 2 parameters start_date and end_date.
    Now if you want to process data say between 01-Jan to 06-Jan, a wrapper program should first create 6 buckets each of one day and then call PLSQL proc in parallel for these 6 different buckets.
    Regards
    Arun

  • Please help me with multiple threads

    I don't understand much about multiple threads, so can anyone help me with this? can you show me a small simple code about multiple threads?

    Do you understand much about google? yahoo?

  • Read ini file with multiple threads

    I have a state machine architecture, but I have multiple threads. For instance, one is dealing with listening for mulitple tcp connections and storing their refnums to an array in a functional global. Another thread is accessing these refnums and collecting data it's receiving from each tcp connection. This data is queued up and then dequeued in a third thread which does some modification and sends it out via serial. My question is, when you have a situation like this and have to read an ini file, where should you read it? It seems like the most logical place would be outside your loops so you can get all the tcp and serial info (port, baud rate, etc) then wire it it to your create listener or initialize serial connection despite them being in different threads. But then again, normal state machine architecture would want an "initialize" case. If you did this though which loop would you put the init case in? And you would then have to worry about synchronizing loops becuase you wouldn't want one to try and create a listener while another thread was still reading ini data which would include the port to listen on. Maybe I'm overthinking this haha. Suggestions? Edit: one more question. Does it seem overkill that I have a tcp loop listening for data and queuing it up and a separate loop sending out the processed data via serial? Or should I just have one state that gets tcp data stores it in a shift register, then another state that sends it out via serial, and returns the state machine to the tcp read state?
    Message Edited by for(imstuck) on 03-03-2010 01:13 PM
    Message Edited by for(imstuck) on 03-03-2010 01:17 PM
    CLA, LabVIEW Versions 2010-2013

    Most of the applications I work on at the moment are used for testing barcode and label printers. The test applications I design are focused on testing the printer's firmware, not the hardware. Within our applications we have three primary objects (Unfortunately they are not native LabVIEW objects yet. They were developed before native LVOOP.) The primary objects we use in our applications are a log object, a connection object (communication interface to the printer) and a printer object. In any single instance of a test we only have a single printer, a single connection to the printer and one or more discrete logs. Each instance of these objects represent a single, real physical entity. A singleton object is a virtual representation of the physical world. Let's take the log object since that is the most simple of the objects described above. Naturally for a given log file you have the log file name and path. We also provide other attributes such as the maximum size of a single file (we allow log files to span multiple files), whether it is a comma delimited file or if it contains raw data, if timestamps should be included with a log entry and so forth. Most of these attributes are static for a log file with the exception of the name and such things as whether the logging is actually enabled or disabled. If we split a wire and had multiple instances of the log file (the way native LVOOP actually works) the attribute for whether logging is currently enabled or disabled will only pertain to the specific instance, or specific wire for the that object. Since this truly represents a single item, one log file, we need that attribute to be shared for all references to the instance of the log object. Since we allow this we can set an attribute on the log object in any task and it will be reflected in any other task that is using it. Think of the way a action engine or functional global works. However, in this case we provide discrete methods for the various actions.
    I hope that made some sense. If not let me know since I just whipped up this response.
    Mark Yedinak
    "Does anyone know where the love of God goes when the waves turn the minutes to hours?"
    Wreck of the Edmund Fitzgerald - Gordon Lightfoot

  • SQL Toolkit crashing with multiple threads

    Hello everyone and Happy New Year!
    I was hoping someone might be able to shed some light on this problem. I am updating an older application to use multiple threads. Actually the thread that is causing a problem right now is created by using an Asynchronous timer.
    I am using CVI 2010, and I think the SQL toolkit is version 2.2.
    If I execute an SQL statement from the main thread, there is no problem.
    stat = DBInit (DB_INIT_MULTITHREADED);
    hdbc = DBConnect( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sample.mdb;Mode=ReadWrite|Share Deny None" );
    hstmt = DBActivateSQL( hdbc, "SELECT * FROM SAMPLES" );
    DBDeactivateSQL(hstmt);
    DBDisconnect(hdbc);
    If I add code to do the same functions in a timer callback, it causes a stack overflow error.
    .. start main thread
    stat = DBInit (DB_INIT_MULTITHREADED);
    NewAsyncTimer (5.0, -1, 1, &gfn_quicktest, 0);
     .. end main thread
    .. and then the timer callback
    int CVICALLBACK gfn_quicktest (int reserved, int timerId, int event, void *callbackData, int eventData1, int eventData2)
    int hdbc = DBConnect( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=params\\sample.mdb;Mode=ReadWrite|Share Deny None" );
    int hstmt = DBActivateSQL( hdbc, "SELECT * FROM SAMPLES" );
    DBDeactivateSQL(hstmt);
    DBDisconnect(hdbc);
    return 0;
    The program crashes with a stack overflow error when the DBActivateSQL statement is called.
    I understand that the ODBC driver for Access may not support multithreading, but I am only connecting to that database from the same thread with those 2 statements only so it should be fine ?
    Any insight would be appreciated,
    Thanks,
    Ed.
    Solved!
    Go to Solution.

    I just tried this using the sample access database that comes with CVI. It uses a DSN instead of mdb. It worked fine though. I don't see any reason multithreading would be a problem here if you are opening and closing the connection in the same code segment. I do notice that you are using params in the asyn callback connection string. Where does this come from? Maybe try using the sample database and see if that works.
    National Instruments
    Product Support Engineer

  • Trying to create DVD with multiple tracks that automatically goes to a slug

    I'm doing a DVD for a live show where video and live performance are going back and forth. I want to make a DVD with multiple tracks that plays a movie and returns to a looping black slug (while the live act is happening). Then when the tech person presses next chapter it goes to the next movie (or chapter). That chapter/movie then returns to a looping black slug at the end of the movie (while the next live act plays) and so on and so on. Any help would be most appreciated. Thanks.

    I would think one of the easiest ways to do this is make each clip end jump to a black menu with a hidden button on it that links to the next clip. The menu can stay there as long as you like. Instead of pressing the next chapter button, get your tech to press the 'enter' or 'play' button... if there is only one button on each black menu, then this is what will activate. Have each button point to the next clip that you want. Use the title button to get back to a main menu, if you ahve created one for the disc.

  • DB_INIT_CB Segfaults on put with multiple threads

    Hi,
    I am working on a project that uses several bdb databases both btree, and hashmap inside an environment. This system is multithreaded and as such I decided to use the concurrent data storage subsystem to manage the threads. However this doesn't seem to to be working to well.
    When two threads call db->put on on the btree, bdb crashes. The stack trace is below:
    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0x46e0a940 (LWP 24704)]
    0x00002aaaab492eb1 in __lock_get_internal () from /usr/local/BerkeleyDB.5.1/lib/libdb-5.1.so
    (gdb) ba
    #0 0x00002aaaab492eb1 in __lock_get_internal () from /usr/local/BerkeleyDB.5.1/lib/libdb-5.1.so
    #1 0x00002aaaab4937d2 in __lock_get () from /usr/local/BerkeleyDB.5.1/lib/libdb-5.1.so
    #2 0x00002aaaab4b53cf in __db_cursor () from /usr/local/BerkeleyDB.5.1/lib/libdb-5.1.so
    #3 0x00002aaaab4a4eb8 in __db_put () from /usr/local/BerkeleyDB.5.1/lib/libdb-5.1.so
    #4 0x00002aaaab4b81a9 in __db_put_pp () from /usr/local/BerkeleyDB.5.1/lib/libdb-5.1.so
    #5 0x00002aaaab787df8 in Db::put(DbTxn*, Dbt*, Dbt*, unsigned int) () from /usr/local/BerkeleyDB.5.1/lib/libdb_cxx-5.1.so
    #6 0x0000000000410da5 in BerkleyDbDataSlab::insertRecord (this=0x7261c0, rKey=0, value=0x46e0a050, size=<value optimized out>) at src/berkleydbbtree.cpp:69
    #7 0x000000000046a2a1 in ReadStoreManager::transferThread (this=0x6b0000, id=<value optimized out>) at src/rsmanager.cpp:55
    #8 0x00002aaaaaaca914 in thread_proxy () from /usr/lib/libboost_thread.so.1.46.1
    #9 0x00000035c560673d in start_thread () from /lib64/libpthread.so.0
    #10 0x0000003ed20d3d1d in clone () from /lib64/libc.so.6
    There are about 20 different databases in use here, and the setup is like so:
    Env Setup:
    u_int32_t env_flags = DB_CREATE | DB_INIT_CDB | DB_INIT_MPOOL;
    this->env = new DbEnv(0);
    env->set_cachesize(0, cacheSize, 1);
    u_int32_t m = 0;
    env->mutex_set_max(2000000);
    env->open(dir.c_str(), env_flags, 0);
    BTree database setup:
    db = new Db(env, 0);
    db->set_bt_compare(compare_double);
    db->set_flags(DB_DUPSORT);
    db->set_pagesize(pageSize);
    db->set_dup_compare(compare_double);
    u_int32_t oFlags = DB_CREATE;
    try {
    db->open(NULL, uuid.c_str(), NULL, DB_BTREE, oFlags, 0);
    This application is running on centos 5.5 with the latest version of bdb installed manually.
    Cheers
    Michael

    Hi Michael,
    820039 wrote:
    I am working on a project that uses several bdb databases both btree, and hashmap inside an environment. This system is multithreaded and as such I decided to use the concurrent data storage subsystem to manage the threads. However this doesn't seem to to be working to well.
    When two threads call db->put on on the btree, bdb crashes.The Berkeley DB Concurrent Data Store product adds multiple-reader, single writer capabilities to the Berkeley DB Data Store product. From what I understand you have two threads that are writing without any serialization. You either use the Berkeley DB Transactional Data Store, use just one thread to do the db->put operations or you do the serialization yourself, at the application level.
    Please let me know if it helps.
    Additional Documentation:
    The Berkeley DB products - http://download.oracle.com/docs/cd/E17076_01/html/programmer_reference/intro_products.html#id2707424
    Berkeley DB Concurrent Data Store Applications - http://download.oracle.com/docs/cd/E17076_01/html/programmer_reference/cam.html
    Berkeley DB Transactional Data Store Applications - http://download.oracle.com/docs/cd/E17076_01/html/programmer_reference/transapp.html
    Thanks,
    Bogdan

  • UdpClient with multiple threads using ReceiveAsync get the same buffer

    Hello,
    First let me give you the premise that I am working under... I am hoping to have multiple receive threads to make sure that I am pulling data off the port as quickly as possible and am hoping to do this efficiently through using asynchronous functions.
    I have two simple applications which I will include the code of below, one that uses 4 ReceiveAsync threads and another that sends data out, very quickly. I am finding that the data that I receive is not the same as what I sent. For instance I receive the
    same packet twice and others not at all. I get the output from my receive client:
    Receive client running...
    Packet 1 - 02-FF-FF-FF-FF-FF
    Packet 2 - 03-FF-FF-FF-FF-FF
    Packet 3 - 01-FF-FF-FF-FF-FF
    Packet 4 - 01-FF-FF-FF-FF-FF
    Notice that packet starting with 00 is missing and instead i have two 01s... Sometimes when I run all 4 packets start with 03. I have verified that all 4 packets are correct on the receive machine using Wireshark.
    Can anyone help me figure out why I am getting the right number of continuations from ReceiveAsync with the wrong packets?
    The Sender:
    class Program
        static int numberOfPktsToSend = 4;
        static void Main(string[] args)
            var localEP = new IPEndPoint(IPAddress.Parse("192.168.209.1"), 47000);
            var remoteEP = new IPEndPoint(IPAddress.Parse("192.168.209.133"), 47000);
            UdpClient client = new UdpClient(localEP);
            Parallel.For(0, numberOfPktsToSend, (x) =>
                client.SendAsync(new byte[] { (byte)x, 0xff, 0xff, 0xff, 0xff, 0xff }, 6, remoteEP);
                Console.WriteLine(string.Format("Sent {0}", x));
            Console.ReadLine();
    Note: I padded it with 0xff just to make the packets a little bigger.
    Receiver:
    class Program
        public static UdpClient client;
        public static CancellationTokenSource cts;
        private static int NumberOfReceiveThreads = 4;
        static int packetCount = 1;
        static void Main(string[] args)
            cts = new CancellationTokenSource();
            var localEP = new IPEndPoint(IPAddress.Parse("192.168.209.133"), 47000);
            client = new UdpClient(localEP);
            for (int i = 0; i < NumberOfReceiveThreads; i++)
                Task.Run(() => { myReceiveAsyncThread(); });
            Console.WriteLine("Receive client running...");
            Console.ReadLine();
            cts.Cancel();
        static async void myReceiveAsyncThread()
            var threadId = Task.CurrentId.ToString();
            while (!cts.IsCancellationRequested)
                try
                    var data = await client.ReceiveAsync();
                    Console.WriteLine(string.Format("Packet {0} - {1}", packetCount++, BitConverter.ToString(data.Buffer)));
                catch (Exception e)
                    Console.WriteLine("Something bad happened...");
    Thank you for your help!

    Hello Robbie,
    >>Can anyone help me figure out why I am getting the right number of continuations from ReceiveAsync with the wrong packets?
    Please have a try to use only one thread to read these byte stream as:
    cts = new CancellationTokenSource();
    var localEP = new IPEndPoint(IPAddress.Parse("10.168.196.246"), 47000);
    client = new UdpClient(localEP);
    //for (int i = 0; i < 1; i++)
    Task.Run(() => { myReceiveAsyncThread(); });
    Console.WriteLine("Receive client running...");
    Console.ReadLine();
    cts.Cancel();
    In your original code, there are multi threads seems to result a repeat read behavior.
    Regards.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Want RMI work with multiple IPs(subnet) automatically

    Hi, All:
    Network configurations:
    Two subnets: 1.1.1XXX and 2.2.2.XXX, and they can not Ping each other
    Server: two IPs, 1.1.1.1 and 2.2.2.2
    Two Client: one at 1.1.1.8 and one at 2.2.2.8
    I want to RMI running on the server to be accessible to the clients on both subnet
    at the same time.
    For example, if a client from 1.1.1.8 make the request, the RMI server
    will return object at 1.1.1.1 ...
    Question
    a) What is the best way for me to achieve this goal?
    b) Someone mentioned there are commercial grade of RMI implemenation,
    Who are they? Do they solve the problem?
    Thanks
    Lei Shen
    P.S.
    I search the forum, most post are talking about how to make RMI work
    for ONE particular IP with setting the hostname properties.

    Hi Lei,
    Off the top of my head, I would do it this way:
    Have the main RMI server running on one interface. Then run a small 'bridge' RMI server on the other interface. The bridge server's job is solely to connect to, and wrap the main server's bound items, then locally bind these wrappers, making them callable from the second subnet, it would require no more code than just that.
    The RMI service will be physically on one subnet, and virtually on the other, but to the clients, and even to the main server, this will be indistinguishable.
    A commercial grade RMI implementation found here could be able help you. Best of all, its free software.
    John

  • Reading image stream with multiple threads

    Hello folks
    I thought about a model for an app I need to code and I need your opinion.
    My task is to implement an application that does the following:
    - Read and decode images from a stream.
    - Do some image processing
    - Display the resulting images in Swing window.
    Since decoding is expensive and i might want to use a multiprocessor machine,
    I decided to put the image reading and decoding in a different thread. from the
    image processing (and maybe painting).
    In the end, I thought about using 2 objects and 3 threads:
    - one object that keeps the Swing window data and the image processing logic
    - one object that keeps the stream connection data and the decompression logic
    for the (jpeg) images
    -one thread that waits for incoming events and decodes them. After decompressing
    one image, it sends an event to all objects that needs the image data, in this case
    this is the object that keeps the image processing logic. Therefore it updates an
    image reference in the image processing logics object. The image object only
    allow synchronized access by all threads.
    -another thread whose logic is inside the image processing logic object takes
    the current data from the image reference the first thread writes to via events
    and does image processing. The result is written to another image reference within
    the same object. After that, it sleeps for 10 ms or so.
    -a third thread is triggered via invokeLater by the image processing thread after
    it produced a result. It calls the repaint() method of the Swing control which draws
    the result-image to the screen.
    Do you see any mistakes or do you have better suggestions to do it?
    Please let me know!
    Thanks in advance!

    If the file is on a diskdrive, it's likely that your program will be i/o bound and threads won't help.
    Edited by: ChuckBing on Jul 2, 2008 11:32 AM

  • Reading a file with multiple threads?

    I have a file that contains some data. In my application, I currently have three worker threads that perform the same long-executing task using three different data sets. They each need to read some data from the same file. Is this a problem as long as they are only reading it? I know it would be if they modified it but I didn't think it was a problem if they were only reading it.
    Edit: It is an XML file and I am using the XML Decoder to read it.
    Edited by: Sch104 on Jul 2, 2008 9:08 AM

    If the file is on a diskdrive, it's likely that your program will be i/o bound and threads won't help.
    Edited by: ChuckBing on Jul 2, 2008 11:32 AM

  • Is there any problem to use multiple threads to send email with JavaMail

    Dear all,
    I am using JavaMail 1.3.2 to send emails with SMTP, it works very well for a long time.
    But one day, I found that the email service hanged and I could never send email again until I restart the tomcat. I found that the reason was a deadlock had been created, the required resource for sending email had not been released.
    I guess the error is due to multiple threads are sending email at the same time. I made a test to create seperate thread for sending each email. After few days, I found this deadlock happened again. So, my question is: Can I use JavaMail with multiple threads? If not, I may need to sychronized all the thread that using JavaMail. I would like to make sure this is the reason for causing the deadlock problem.
    Here is part of my code for using JavaMail:
    transport = session.getTransport("smtp");
    transport.connect(email_host, smtp_user, smtp_pass);
    message.saveChanges();
    transport.sendMessage(message,message.getAllRecipients());
    which is very standard call, and it worked well for a long time.
    Here is part for my thread dump on tomcat:
    (Thread-339)
    - waiting to lock <0x5447c180> (a sun.nio.cs.StandardCharsets)
    (Thread-342)
    - locked <0x5447c180> (a sun.nio.cs.StandardCharsets)
    It seems that these happened after call the method transport.sendMessage() or message.updateChanges()
    , and the underlying implementation may require the JRE StandardCharsets object. But the object had been locked and never be released. So, the sendMessage() or updateChanges() can't be completed.
    Please give me some helps if you have any idea about it.
    Thanks very much!
    Sirius

    Note that the Nightly build gets updated daily (and sometimes more than once in case of a respin) and it is always possible that something goes wrong and it doesn't work properly, so be prepared for issues if you decide to stay with the Nightly build and make sure to have the current release with its own profile installed as well in case of problems.
    See also:
    * http://kb.mozillazine.org/Testing_pre-release_versions
    *http://kb.mozillazine.org/Creating_a_new_Firefox_profile_on_Windows
    *http://kb.mozillazine.org/Shortcut_to_a_specific_profile
    *http://kb.mozillazine.org/Using_multiple_profiles_-_Firefox

  • JMeter +JSF 1.2 +Multiple threads issue

    I have an issue when running JMeter with an JSF 1.2 application.
    I have the regex and xpath fix working. It is extracting the correct ViewState value, but only as long as I am running one thread. If I start a thread group with multiple threads the regex/xpath will eventually return the default value and the test will fail.
    Scenario 1 (SUCCESS):
    I run one thread and one thread group, regex/xpath return the
    "ViewState" value correctly and the test runs perfectly until I stop it.
    Scenario 2 (FAILURE):
    I run multiple threads and one thread group, regex/xpath
    eventually return the DEFAULT value instead the "ViewState" value to
    all but one thread. The more threads the faster they fail. It really
    seems like there is a threading issue.
    Has anyone experienced similar issues when running regex/xpath and multiple threads?

    Thank you, I tried what you suggested and revealed something interesting. The application in some cases prints the following on the screen:
    *~com.sun.faces.saveStateFieldMarker~*, and it is in those cases JMETER Xpath extraction fails.
    Well I have to look more into it. Thank again for the help.

Maybe you are looking for