Volunteer needed to help debug a Boost library in Sun Studio

Hello,
I've recently added a new Boost library called Boost.Flyweight to this project's
internal repository
[http://svn.boost.org/svn/boost/trunk/libs/flyweight/doc/index.html]
and found out that Sun Studio (versions 5.7 thru 5.9) have runtime problems with
a particular library test, as described in
[http://lists.boost.org/boost-testing/2008/12/6048.php]
My requests for help at the Boost mailing lists have met no response, so I'm
looking here for volunteers to help debug this problem. Basically I need someone
with access to Sun Studio and some C++ fluency (and familiarity with
Boost is a plus, too). I'd be trying to provide as much support as possible
during the process. In return the kind volunteer will receive my eternal gratitude
and an entry in the lib's acknowledgements section.
If you're interested please drop me an email to joaquin at tid.es
Thank you very much,
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo

The problem has been identified as a compiler bug, and bug number 6782987 has been filed for it.
The bug report will be visible at bugs.sun.com in a day or two.
Compiler versions earlier than 5.9 (Sun Studio 12) are not very good a compiling BOOST, but this particular bug exists in the latest development compiler. One of our engineers is looking for a workaround, and he will post something here if he finds one.
A fix for this bug should show up in a future patch to Sun Studio 12. If you have a service contract with Sun, you can escalate this bug for faster service, and get a pre-release version of the compiler patch.

Similar Messages

  • Using boost::thread with Sun Studio C++ gives error

    Hi,
    I'm trying to compile a code which uses the boost thread library, but I get the following error:
    CC -library=stlport4 -features=tmplife -features=tmplrefstatic -mt -c -o t t.cpp
    "/opt/boost/include/boost/thread/pthread/mutex.hpp", line 142: Error: The function "pthread_mutex_timedlock" must have a prototype.
    "/opt/boost/include/boost/thread/pthread/mutex.hpp", line 142: Error: The function "pthread_mutex_timedlock" must have a prototype.
    "/opt/boost/include/boost/thread/detail/thread.hpp", line 344: Error: boost::thread::thread(boost::thread&) is not accessible from boost::move(boost::detail::thread_move_t<boost::thread>).
    "/opt/boost/include/boost/thread/pthread/recursive_mutex.hpp", line 179: Error: The function "pthread_mutex_timedlock" must have a prototype.
    "/opt/boost/include/boost/thread/pthread/recursive_mutex.hpp", line 179: Error: The function "pthread_mutex_timedlock" must have a prototype.
    5 Error(s) detected.
    make: *** [t] Error 5the sample source code in question here just a single include:
    #include <boost/thread.hpp>This is with boost 1.40.0. I wonder what I'm doing wrong..
    Akos

    OK, I tried latest version of CC from Sun Studio 12 update 1 and can say that
    - the error about constructor not being accessible is Sun C++ compiler "feature" (only called feature because it existed for so long) that allows binding of rvalues to non-const references; this "feature" will probably be turned off in the next release. It can't be changed in a patch because client's code might rely on it.
    - the other errors are also not Boost-specific: the result of incompatibility of Linux headers and Sun C++ compiler; more thorough investigation is due, but in the past we had several problems like this. This particular can be solved by adding
    -D_GNU_SOURCE to compile line.

  • IPod Neophyte needs your HELP!!! (library transfer to iPod)

    I recently upgraded to iTunes 7.01, **but this problem remains (b4 and after upgrade)! Can anyone tell me why (and how to fix) my iTunes Library shows aprox. 2800 songs (aprox. 15 GB), but regardless of how many times I connect my iPod (30GB 5th gen., NOT late 2006 version) to my PC (to charge, etc.)-- my iPod only contains/displays aprox. 2600 songs (13+ GB)?!?! What do I need to rectify this? Thanx in advance to all you much smarter technophiles!

    did you check your itunes options to see if you
    have
    selected the 'Only Update checked songs' option
    and
    if some songs in your itunes library are
    unchecked?
    if this is so then unselect the 'Only update
    checked
    songs' option. Hope this helps
    (2) YEAH, I checked and this option is NOT checked, so that's Not the problem
    Thanx though!
    *ANY OTHER SUGGESTIONS?? "Bueller..., Bueller anyone?"

  • Need some help in debugging this exported script

    Below is DDL generated by visio forward engineering tool . The example below consists of 2 test tables with one foreign key.
    Forward engineering generated DDL script
    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Table1]') AND type in (N'U'))
    DROP TABLE [dbo].[Table1]
    GO
    CREATE TABLE [dbo].[Table1] (
    [test] CHAR(10) NOT NULL
    , [test2] CHAR(10) NULL
    GO
    ALTER TABLE [dbo].[Table1] ADD CONSTRAINT [Table1_PK] PRIMARY KEY CLUSTERED (
    [test]
    GO
    GO
    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Table2]') AND type in (N'U'))
    DROP TABLE [dbo].[Table2]
    GO
    CREATE TABLE [dbo].[Table2] (
    [test2] CHAR(10) NOT NULL
    GO
    ALTER TABLE [dbo].[Table2] ADD CONSTRAINT [Table2_PK] PRIMARY KEY CLUSTERED (
    [test2]
    GO
    GO
    ALTER TABLE [dbo].[Table1] WITH CHECK ADD CONSTRAINT [Table2_Table1_FK1] FOREIGN KEY (
    [test2]
    REFERENCES [dbo].[Table2] (
    [test2]
    GO
    GO
    When i converted this DDL script using scratch editor the migration tool gave some errors can anyone help me to resolve below
    DECLARE
    v_temp NUMBER(1, 0) := 0;
    BEGIN
    BEGIN
    SELECT 1 INTO v_temp
    FROM DUAL
    WHERE EXISTS ( SELECT *
    FROM objects
    WHERE OBJECT_ID_ = NULL/*TODO:OBJECT_ID(N'[OPS].[Table1]')*/
    AND TYPE IN ( N'U' )
    EXCEPTION
    WHEN OTHERS THEN
    NULL;
    END;
    IF v_temp = 1 THEN
    TRUNCATE TABLE Table1;
    END IF;
    END;
    CREATE TABLE Table1
    test CHAR(10) NOT NULL,
    test2 CHAR(10)
    ALTER TABLE Table1
    ADD
    CONSTRAINT Table1_PK PRIMARY KEY( test );
    --SQLDEV:Following Line Not Recognized
    DECLARE
    v_temp NUMBER(1, 0) := 0;
    BEGIN
    BEGIN
    SELECT 1 INTO v_temp
    FROM DUAL
    WHERE EXISTS ( SELECT *
    FROM objects
    WHERE OBJECT_ID_ = NULL/*TODO:OBJECT_ID(N'[OPS].[Table2]')*/
    AND TYPE IN ( N'U' )
    EXCEPTION
    WHEN OTHERS THEN
    NULL;
    END;
    IF v_temp = 1 THEN
    TRUNCATE TABLE Table2;
    END IF;
    END;
    CREATE TABLE Table2
    test2 CHAR(10) NOT NULL
    ALTER TABLE Table2
    ADD
    CONSTRAINT Table2_PK PRIMARY KEY( test2 );
    --SQLDEV:Following Line Not Recognized
    ALTER TABLE Table1
    ADD
    CONSTRAINT Table2_Table1_FK1 FOREIGN KEY( test2 ) REFERENCES Table2 (test2)
    --SQLDEV:Following Line Not Recognized
    ;

    Pl do not post duplicates - Need some help in debugging this script

  • HT1349 I need help finding an old library that itunes states my ipod is already linked to

    I need help finding an old library that it states my ipod is already linked to.  My computer recently had a terrible virus and needed to be wiped clean.  I had to redownload itunes and I bought several songs.  I want to add them to my old library because I had several cd's that I had uploaded.  Is there a way to find that old library and combine them without having to erase all the songs that are currently on my ipod???  Thanks

    Umm.  If you wiped the hard drive, then all old libraries are gone unless you have them on backup.

  • Debugging - need configuration help

    I also posted this in Advanced Techniques by accident...
    I need some help configuring my local development machine for CFBuilder debugging. CF application development is configured correctly, but I'm having problems configuring debugging settings for CFBuilder/Eclipse. CFBuilder is installed and connected to RDS, and the CF Administrator is setup to do line level debugging. I'm running Windows 7 x64 with ColdFusion 9 (using IIS).
    All my projects are in my "C:\Dev" folder, and each project contains a "www" folder, which is the web root for the project. So I've got my projects organized like this:
    C:\Dev
         TestSite
              design
              docs
              www  <--- web root folder
    I've created a ColdFusion project and mapped it directly to the "www" root folder. In IIS, the web root folder is mapped via a virtual directory under the default web site, and is accessed from "http://127.0.0.1/testsite"
    I configured my RDS Server, which works correctly, so I can see the databases on the server. Nice. I also setup a server in the servers list in the coldfusion perspective and imported the settings directly from my RDS server. This one has the same name as my RDS server, which is "Local RDS Server." I also added a URL Prefix for "testsite" that is mapped to the local path: (C:\Dev\TestSite\www) and "http:\\127.0.0.1\testsite. And finally, in the Debug Mappings (preferences window), I specified "Local RDS Server."
    Everything seems to be setup, but I still cannot debug. Here's what happens:
    From the ColdFusion perspective, I right click on index.cfm and select "Debug As -> ColdFusion Application" The first time I do this, it switches over to the ColdFusion Debugging Perspective and loads "http://homepage/" and then nothing seems to work. In the Debug tab, it shows me that it created a new launch for my project as follows:
    TestSite
         Local RDS Server
              ColdFusion Template
    I can see my breakpoint in my breakpoints tab. But I can't seem to get any farther. I can't find a way to run to my breakpoint.The home page for the active debugging session is "http://homepage/" which is something that I don't understand. How do I make CFBuilder go to the correct home page for the debugging session? That might be the key.

    My previous post had to do with migrating an eclipse project over to a coldfusion project... that was my first one. I was finally able to get running under the debugger. Very nice!! I'm so happy to have a debugger available now!!!!
    I just started setting up my next project, but I'm stumped. When I right-click on this new project, and I go to properties, and then click on my ColdFusion Server Settings pane, I want to be able to specify the address to use for debugging, which I would assume should be in the "Sample URL" field. But the field is disabled and it says "Sample URL is not available. (Project is not in document root of server Local RDS Server).
    Local RDS Server is the local RDS server I setup, but I see where I specify a document root for the RDS server... I just specify a Host Name, which is my local IP address for my projects.
    Any ideas?

  • Need help: Form6i PL/SQL library not found!

    New oracle user need your help:
    I installed Form6i and PO8i on NT, and config the tnsnames.ora file, they both worked fine to connect. But when I try to look into the PL/SQL library, it said PL/SQL library can not found. I deleted the classpath because with it I can't run Java, and the Sun help menu told me I can delete classpath to let it use current directory, is this the reason that Oracle can't find the library?
    One more question: when I connect to database from Form, Username, Password, then Databasename, for this last one, if I leave it blank, it will connect to the database, but if I type in my database name(the default DB name), it will again give me error message, said TNS can't resolve service. Does anybody have a clue? Thank you so much!

    The answer for on more question:
    It's not db name but service name.
    A sample in tnsname.ora:
    DKORCL[the service name].world =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dlt_db_srv[host_name])(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = dkorcl[oracle service name])
    You say,"u can leave it blank ",then u must work at the server.And the name u type in is not correct.
    May this help u!
    null

  • A debug trouble, need you help!~~

    Hi,
    I want to debug TTY. And I try to using commonds as following:
    C:\jdb -classpath F:\com\sun\tools\example\debug\tty TTY
    C:\jdb -classpath F:\com\sun\tools\example\debug\ttycom.sun.tools.example.debug.TTY But I got the erro:"Exception in thread "main" java.lang.NoClassDefFoundError: F:\com\sun\tools\example\debug\tty"
    I must make some mistakes. And how do I should imput my commond?
    Thank you!
    Duanyh
    SJTU

    Hi,
    I want to debug TTY.OK... you want to debug the com.sun.tools.example.debug.tty.TTY class.
    Please excuse me if this is going over work you have already
    done... I decided to start from the beginning for the benefit
    of anyone else reading this thread.
    NOTE: If you are following these example command lines, remember that
    the separator char for directories on CLASSPATH is : on Unix
    systems and ; on win32 systems:
    1) Unpack the JPDA examples:
    cd $JAVA_HOME/demo/jpda
    jar -xvf examples.jar2) Compile the example code for debugging:
    javac -g -classpath "$JAVA_HOME/lib/tools.jar:." com/sun/tools/example/debug/tty/TTY.java3) Create a HelloWorld.java class to be a victim for this debug session:
    cat > HelloWorld.java
    public class HelloWorld {
        public static void main(String args[]) {
            System.out.println("Hello, world!");
    }Compile the HelloWorld class:
    javac -g HelloWorld.java4) Start up com.sun.tools.example.debug.tty.TTY and have it debug
    the HelloWorld class, using commands like this:
    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8211,server=y,suspend=n -classpath "$JAVA_HOME/lib/tools.jar:." com.sun.tools.example.debug.tty.TTY HelloWorld
    Initializing jdb ...
    stop in HelloWorld.mainDeferring breakpoint HelloWorld.main.
    It will be set after the class is loaded.
    runrun HelloWorld
    Set uncaught java.lang.Throwable
    Set deferred uncaught java.lang.Throwable
    >
    VM Started: Set deferred breakpoint HelloWorld.main
    Breakpoint hit: "thread=main", HelloWorld.main(), line=3 bci=0
    3            System.out.println("Hello, world!");
    main[1] 5) At this point, the TTY class is busy debugging the HelloWorld
    class. Since the TTY class was started with the appropriate
    -Xdebug -Xrunjdwp:... flags, you can now attach to that process
    on the pre-arranged port (8211 in this example) and examine it.
    I suggest you do this from a separate command window:
    jdb -connect com.sun.jdi.SocketAttach:port=8211
    Set uncaught java.lang.Throwable
    Set deferred uncaught java.lang.Throwable
    Initializing jdb ...
    threadsGroup system:
      (java.lang.ref.Reference$ReferenceHandler)0x295       Reference Handler          cond. waiting
      (java.lang.ref.Finalizer$FinalizerThread)0x296        Finalizer                  cond. waiting
      (java.lang.Thread)0x297                               Signal Dispatcher          running
    Group main:
      (java.lang.Thread)0x1                                 main                       running
      (java.lang.UNIXProcess$3)0x299                        process reaper             running
      (com.sun.tools.example.debug.tty.VMConnection$1)0x29a output reader              running
      (com.sun.tools.example.debug.tty.VMConnection$1)0x29b output reader              running
      (java.lang.Thread)0x29c                               event-handler              cond. waiting
    Group JDI [27940859]:
      (java.lang.Thread)0x29f                               JDI Target VM Interface    running
      (java.lang.Thread)0x2a0                               JDI Internal Event Handler cond. waiting
    suspendAll threads suspended.
    thread 0x1main[1] where
      [1] java.io.FileInputStream.readBytes (native method)
      [2] java.io.FileInputStream.read (FileInputStream.java:194)
      [3] java.io.BufferedInputStream.read1 (BufferedInputStream.java:220)
      [4] java.io.BufferedInputStream.read (BufferedInputStream.java:277)
      [5] sun.nio.cs.StreamDecoder$CharsetSD.readBytes (StreamDecoder.java:408)
      [6] sun.nio.cs.StreamDecoder$CharsetSD.implRead (StreamDecoder.java:450)
      [7] sun.nio.cs.StreamDecoder.read (StreamDecoder.java:182)
      [8] java.io.InputStreamReader.read (InputStreamReader.java:167)
      [9] java.io.BufferedReader.fill (BufferedReader.java:136)
      [10] java.io.BufferedReader.readLine (BufferedReader.java:299)
      [11] java.io.BufferedReader.readLine (BufferedReader.java:362)
      [12] com.sun.tools.example.debug.tty.TTY.<init> (TTY.java:525)
      [13] com.sun.tools.example.debug.tty.TTY.main (TTY.java:850)At this point, your are debugging the JVM running com.sun.tools.example.debug.tty.TTY.main. You can
    set breakpoints, resume the debug session, and so forth.

  • Need your help on performance issue please

    Hello everyone!
    I need your help to understand an effect I notice with a Thread class I built. I currently work on enhancement of my application Playlist Editor (see http://www.lightdev.com/page74.htm) and a new release will be available soon.
    Among other extensions the new release will have a title filter function which is based on audio data that is recursively read from ID3 tags of files found in a given root directory. The data collection is done by a CollectionThread class which reads into a data model class AudioDataModel and the entire process works fine, no problem with that.
    However, when my application is started for the first time the CollectionThread runs approximately 3 minutes to collect data from approximately 4300 audio files on an Intel Pentium M 1,4 GHz, 512 MB RAM, Windows XP SP2. When the application is shut down and started again, it takes only a few seconds to do the same task for all subsequent launches.
    I already tried to start the application with java option -Xms40m to increase initial heap size. This increases performance in general but the effect is still the same, i.e. first run lasts significantly longer than subsequent runs.
    I also tried to build a pool mechanism which creates many empty objects in the data model and then releases them to contain the actual data at is being read in but this did not lead to better performance.
    It must have to do with how Java (or Windows?) allocates and caches memory. I wonder whether there is a way to pre-allocate memory or if there are any other ideas to improve performance so that the process always only takes seconds instead of minutes?
    I attach the key classes to this message. Any help or ideas is much appreciated!
    Thanks a lot a best regards
    Ulrich
    PS: You can use the news subscription service at
    http://www.lightdev.com/dynTemplate.php4?id=80&dynPage=subscribe.php4 to be informed when the new release of Playlist Editor is available.
    All classes posted here do not need debugging, they already have proven to run error free. The classes are only posted for information for the interested reader - no need to go through all the stuff in detail - only if it interests you.
    My application calls class CollectionThread wich is a subclass of InfoThread. CollectionThread recursively goes through a directory and file structure and stores found ID3 tag information in instances of class ID3v11Tag which in turn gets stored in one instance of class AudioDataModel. All classes are shown below.
    This is the mentioned CollectionThread
    * Light Development Playlist Editor
    * Copyright (C) 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.app.playlisteditor.data;
    import com.lightdev.lib.util.InfoThread;
    import java.io.File;
    * A class to collect audio data from a given storage location.
    * <p>
    * <code>CollectionThread</code> uses ID3 tag information to gain data.
    * </p>
    * <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
    * ID3 tags.</p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software as well as any licensing notes
    *      inside this documentation
    * @version 1, October 13, 2004
    public class CollectionThread extends InfoThread {
       * constructor
       * @param model  AudioDataModel  the data model to collect data to
      public CollectionThread(AudioDataModel model) {
        this.model = model;
       * constructor, creates a new empty AudioDataModel
      public CollectionThread() {
        this(new AudioDataModel());
       * set the data model to collect data to
       * @param model AudioDataModel  the model to collect data to
      public void setModel(AudioDataModel model) {
        this.model = model;
       * get the data model associated to this thread
       * @return AudioDataModel  the data model
      public AudioDataModel getModel() {
        return model;
       * set the directory to collect data from
       * @param rootDir File  the directory to collect data from
      public void setRootDirectory(File rootDir) {
        this.rootDir = rootDir;
       * do te actual work of this thread, i.e. iterate through a given directory
       * structure and collect audio data
       * @return boolean  true, if work is left
      protected boolean work() {
        boolean workIsLeft = true;
        maxValue = -1;
        filesProcessed = 0;
        if(getStatus() < STATUS_HALT_PENDING) {
          countElements(rootDir.listFiles());
        if(getStatus() < STATUS_HALT_PENDING) {
          workIsLeft = collect(rootDir.listFiles());
        return workIsLeft;
       * count the elements in a given file array including its subdirectories
       * @param files File[]
      private void countElements(File[] files) {
        int i = 0;
        while (i < files.length && getStatus() < STATUS_HALT_PENDING) {
          File file = files;
    if (file.isDirectory()) {
    countElements(file.listFiles());
    i++;
    maxValue++;
    * recursively read data into model
    * @param files File[] the file array representing the content of a given directory
    private boolean collect(File[] files) {
    int i = 0;
    while(i < files.length && getStatus() < STATUS_HALT_PENDING) {
    File file = files[i];
    if(file.isDirectory()) {
    collect(file.listFiles());
    else if(file.getName().toLowerCase().endsWith("mp3")) {
    try {
    model.addTrack(file);
    catch(Exception e) {
    fireThreadException(e);
    i++;
    filesProcessed++;
    fireThreadProgress(filesProcessed);
    return (i<files.length);
    /** the directory to collect data from */
    private File rootDir;
    /** the data model to collect data to */
    private AudioDataModel model;
    /** the number of files this thread processed so far while it is running */
    private long filesProcessed = 0;
    This is class InfoThread
    * Light Development Java Library
    * Copyright (C) 2003, 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.lib.util;
    import java.util.Vector;
    import java.util.Enumeration;
    * Abstract class <code>InfoThread</class> implements a status and listener concept.
    * An <code>InfoThread</code> object actively informs all objects registered as listeners about
    * status changes, progress and possible exceptions. This way the status of a running
    * thread does not require a polling mechanism to be monitored.
    * <p>
    * <code>InfoThread</code> implements the following working scheme
    * </p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software
    * @version Version 1, October 13, 2004
    public abstract class InfoThread extends Thread {
       * construct an <code>InfoThread</code> object
       * <p>This class is meant to be used when a <code>Thread</code> object is needed that actively
       * informs other objects about its status</code>. It is a good idea therefore to register
       * one or more listeners with instances of this class before doing anything
       * else.</p>
       * @see addInfoThreadListener
      public InfoThread() {
       * set the amount of time this thread shall idle after it is through with one
       * work cycle and before a next work cycle is started. This influences the time
       * other threads have for their work.
       * @param millis long  the number of milliseconds to idle after one work cycle
      public void setIdleMillis(long millis) {
        idleMillis = millis;
       * Causes this thread to begin execution; the Java Virtual Machine calls the <code>run</code>
       * method of this thread. Calls method <code>prepareThread</code> before calling
       * <code>run</code>.
       * @see run
       * @see prepareThread
      public synchronized void start() {
        setStatus(STATUS_INITIALIZING);
        prepareThread();
        setStatus(STATUS_READY);
        super.start();
       * call method <code>start</code> instead of this method.
       * calling this method directly will lead to an exception
       * @see start
      public void run() {
        //System.out.println("InfoThread.run");
        if (status == STATUS_READY) {
          boolean workIsLeft = true;
          setStatus(STATUS_RUNNING);
          while (status < STATUS_STOP_PENDING && workIsLeft) {
            if (status < STATUS_HALT_PENDING) {
              workIsLeft = work();
              if(!workIsLeft) {
                setStatus(STATUS_WORK_COMPLETE);
            if (status == STATUS_HALT_PENDING) {
              setStatus(STATUS_HALTED);
            else if (status == STATUS_STOP_PENDING) {
              setStatus(STATUS_STOPPED);
            else {
              try {
                sleep(idleMillis);
              catch (InterruptedException e) {
                fireThreadException(e);
        else {
          // error: Thread is not ready to run
        setStatus(STATUS_THREAD_FINISHED);
       * stop this thread. This will terminate the thread irrevokably. Use method
       * <code>haltThread</code> to pause a thread with the possiblity to resume work later.
       * @see haltThread
      public void stopThread() {
        switch (status) {
          case STATUS_RUNNING:
            setStatus(STATUS_STOP_PENDING);
            break;
          case STATUS_HALT_PENDING:
            // exception: the thread already is about to halt
            break;
          case STATUS_STOP_PENDING:
            // exception: the thread already is about to stop
            break;
          default:
            // exception: a thread can not be stopped, when it is not running
            break;
       * halt this thread, i.e. pause working allowing to resume later
       * @see resumeThread
      public void haltThread() {
        switch (status) {
          case STATUS_RUNNING:
            setStatus(STATUS_STOP_PENDING);
            break;
          case STATUS_HALT_PENDING:
            // exception: the thread already is about to halt
            break;
          case STATUS_STOP_PENDING:
            // exception: the thread already is about to stop
            break;
          default:
            // exception: a thread can not be halted, when it is not running
            break;
       * resume this thread, i.e. resume previously halted work
       * @see haltThread
      public void resumeThread() {
        if(status == STATUS_HALTED || status == STATUS_HALT_PENDING) {
          setStatus(STATUS_RUNNING);
        else {
          // exception: only halted threads or threads that are about to halt can be resumed
       * this is the method to prepare a thread to run. It is not implemented in this abstract
       * class. Subclasses of <code>InfoThread</code> can implement this method to do anything
       * that might be required to put their thread into STATUS_READY. This method is called
       * automatically by method <code>start</code>.  When implementing this method, it should
       * call method <code>fireThreadException</code> accordingly.
       * @see start
       * @see fireThreadException
      protected void prepareThread() {
        // does nothing in this abstract class but might be needed in subclasses
       * this is the main activity method of this object. It is not implemented in this abstract
       * class. Subclasses of <code>InfoThread</code> must implement this method to do something
       * meaningful. When implementing this method, it should call methods
       * <code>fireThreadProgress</code> and <code>fireThreadException</code> accordingly.
       * @return boolean true, if work is left, false if not
       * @see fireThreadProgress
       * @see fireTreadException
      protected abstract boolean work();
       * add an <code>InfoTreadListener</code> to this instance of <code>InfoThread</code>
       * @param l InfoThreadListener  the listener to add
       * @see removeInfoThreadListener
      public void addInfoThreadListener(InfoThreadListener l) {
        listeners.add(l);
       * remove an <code>InfoTreadListener</code> from this instance of <code>InfoThread</code>
       * @param l InfoThreadListener  the listener to remove
      public void removeInfoThreadListener(InfoThreadListener l) {
        listeners.remove(l);
       * notify all <code>InfoThreadListener</code>s of a status change
       * @param fromStatus int  the status tis thread had before the change
       * @param toStatus int  the status this thread has now
      protected void fireThreadStatusChanged(int fromStatus, int toStatus) {
        Enumeration e = listeners.elements();
        while(e.hasMoreElements()) {
          Object l = e.nextElement();
          if(l instanceof InfoThreadListener) {
            ((InfoThreadListener) l).threadStatusChanged(this, fromStatus, toStatus);
       * notify all <code>InfoThreadListener</code>s of an exception in this thread
       * @param ex Exception  the exception that occurred
      protected void fireThreadException(Exception ex) {
        Enumeration e = listeners.elements();
        while(e.hasMoreElements()) {
          Object l = e.nextElement();
          if(l instanceof InfoThreadListener) {
            ((InfoThreadListener) l).threadException(this, ex);
       * notify all <code>InfoThreadListener</code>s of the progress of this thread
       * @param progressValue long  a value indicating the current thread progress
      protected void fireThreadProgress(long progressValue) {
        Enumeration e = listeners.elements();
        while(e.hasMoreElements()) {
          Object l = e.nextElement();
          if(l instanceof InfoThreadListener) {
            ((InfoThreadListener) l).threadProgress(this, progressValue, maxValue);
       * set the status of this thread and notify all listeners
       * @param newStatus int  the status this thread is to be changed to
      private void setStatus(int newStatus) {
        //System.out.println("InfoThread.setStatus oldStatus=" + status + ", newStatus=" + newStatus);
        int fromStatus = status;
        status = newStatus;
        fireThreadStatusChanged(fromStatus, newStatus);
       * get the current status of this thread
       * @return int  the status
      public int getStatus() {
        return status;
       * cleanup before actual destruction.
      public void destroy() {
        //System.out.println("InfoThread.destroy");
        cleanup();
        super.destroy();
       * cleanup all references this thread maintains
      private void cleanup() {
        //System.out.println("InfoThread.cleanup");
        listeners.removeAllElements();
        listeners = null;
      /* ----------------------- class fields start ------------------------ */
      /** storage for the objects this thread notifies about status changes and progress */
      private Vector listeners = new Vector();
      /** indicator for the status of this thread */
      private int status = STATUS_NONE;
      /** maximum value for threadProgress */
      protected long maxValue = -1;
      /** the idle time inside one work cycle in milliseconds */
      protected long idleMillis = 1;
      /* ----------------------- class fields end -------------------------- */
      /* ----------------------- constants start --------------------------- */
      /** constant value indicating that no status has been set so far */
      public static final int STATUS_NONE = 0;
      /** constant value indicating that the thread is currently initializing */
      public static final int STATUS_INITIALIZING = 1;
      /** constant value indicating that the thread is ready to run */
      public static final int STATUS_READY = 2;
      /** constant value indicating that the thread is running */
      public static final int STATUS_RUNNING = 3;
      /** constant value indicating that the thread is about to halt */
      public static final int STATUS_HALT_PENDING = 4;
      /** constant value indicating that the thread is halted */
      public static final int STATUS_HALTED = 5;
      /** constant value indicating that the work of this thread is complete */
      public static final int STATUS_WORK_COMPLETE = 6;
      /** constant value indicating that the thread is about to stop */
      public static final int STATUS_STOP_PENDING = 7;
      /** constant value indicating that the thread is stopped */
      public static final int STATUS_STOPPED = 8;
      /** constant value indicating that the thread is finished */
      public static final int STATUS_THREAD_FINISHED = 9;
      /* ----------------------- constants end --------------------------- */
    }this is the InfoThreadListener interface
    * Light Development Java Library
    * Copyright (C) 2003, 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.lib.util;
    * An interface classes interested to receive events from objects
    * of class <code>InfoThread</code> need to implement.
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software
    * @version Version 1, October 13, 2004
    public interface InfoThreadListener {
       * method to receive a status change notification from a thread
       * @param thread InfoThread  the thread which status changed
       * @param fromStatus int  the status which the thread had before the change
       * @param toStatus int  the status which the thread has now
      public void threadStatusChanged(InfoThread thread, int fromStatus, int toStatus);
       * method to receive a notification about the progress of a thread
       * @param thread InfoThread  the thread which notified about its progress
       * @param progressValue long  the value (e.g. 10 if 100 percent completed, 20 of 1 million files processed, etc.)
      public void threadProgress(InfoThread thread, long progressValue, long maxValue);
       * method to receive a notifiaction about the fact that an exception occurred in a thread
       * @param thread InfoThread  the thread for which an exception occurred
       * @param e Exception  the exception that occurred
      public void threadException(InfoThread thread, Exception e);
    }This is class AudioFileDescriptor
    * Light Development Java Library
    * Copyright (C) 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.lib.audio;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.io.Serializable;
    import java.text.DecimalFormat;
    * This class models characteristics of an audio file such as the absolute path
    * of the file, its tag contents (if any) and the play duration, etc.
    * <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
    * ID3 tags.</p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software
    * @version Version 1, October 13, 2004
    public class AudioFileDescriptor implements Serializable, Comparable {
      public AudioFileDescriptor(String absolutePath) throws FileNotFoundException, IOException {
        load(absolutePath);
      public boolean equals(Object o) {
        if(o != null && o instanceof AudioFileDescriptor) {
          return ((AudioFileDescriptor) o).getAbsolutePath().equalsIgnoreCase(this.getAbsolutePath());
        else {
          return false;
      public void load(String absolutePath) throws FileNotFoundException, IOException {
        this.absolutePath = absolutePath;
        RandomAccessFile rf = new RandomAccessFile(absolutePath, "r");
        if(id3v11Tag == null) {
          id3v11Tag = new ID3v11Tag(rf, false);
        else {
          id3v11Tag.readTag(rf, rf.length() - 128);
        rf.close();
      public String getAbsolutePath() {
        return absolutePath;
      public ID3v11Tag getID3v11Tag() {
        return id3v11Tag;
      public void setID3v11Tag(ID3v11Tag tag) {
        this.id3v11Tag = tag;
      public String toString() {
        DecimalFormat df = new DecimalFormat("00");
        return id3v11Tag.getArtist() + ", " + id3v11Tag.getAlbum() + " - " +
            df.format(id3v11Tag.getTrackNumber()) + " " + id3v11Tag.getTitle();
       * Compares this object with the specified object for order.
       * @param o the Object to be compared.
       * @return a negative integer, zero, or a positive integer as this object is less than, equal to,
       *   or greater than the specified object.
       * @todo Implement this java.lang.Comparable method
      public int compareTo(Object o) {
        return toString().compareTo(o.toString());
      private String absolutePath;
      private ID3v11Tag id3v11Tag;
      private transient long duration = -1;
      private transient int type = TYPE_UNKNOWN;
      public static final transient int TYPE_UNKNOWN = 0;
      public static final transient int TYPE_MP3 = 1;
    }This is class ID3V11Tag into which the data is actually stored
    * Light Development Java Library
    * Copyright (C) 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.lib.audio;
    import java.io.File;
    import java.io.RandomAccessFile;
    import java.io.IOException;
    import java.io.Serializable;
    import java.text.DecimalFormat;
    * This class is a very simple implementation of an ID3v11Tag. It models an ID3 tag
    * pretty much the same way as it is physically stored inside an audio file.
    * <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
    * ID3 tags.</p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software
    * @version Version 1, October 13, 2004
    public class ID3v11Tag implements Serializable, Comparable {
       * construct an ID3v11Tag and read tag content from a given file
       * <p>This constructor can be used for cases where a RandomAccessFile has already
       * been opened and will be closed elsewhere</p>
       * @param rf RandomAccessFile  the open file to read from
       * @param isAtTagStartPos boolean  true, if the file pointer is at the
       * position where the ID3 tag starts; when false, the pointer is positioned accordingly here
       * @throws IOException
      public ID3v11Tag(RandomAccessFile rf, boolean isAtTagStartPos) throws IOException {
        if(isAtTagStartPos) {
          readTag(rf);
        else {
          readTag(rf, rf.length() - 128);
       * construct an ID3v11Tag and read tag content from a file at a given location
       * <p>This constructor opens and closes the audio file for reading</p>
       * @param absolutePath String  the absolute path to the audio file to open
       * @throws IOException
      public ID3v11Tag(String absolutePath) throws IOException {
        RandomAccessFile rf = new RandomAccessFile(absolutePath, "r");
        readTag(rf, rf.length() - 128);
        rf.close();
       * construct an ID3v11Tag and read tag content from a given file
       * <p>This constructor opens and closes the audio file for reading</p>
       * @param audioFile File  the audio file to read from
       * @throws IOException
      public ID3v11Tag(File audioFile) throws IOException {
        this(audioFile.getAbsolutePath());
       * get a string representation of this object
       * @return String
      public String toString() {
        DecimalFormat df = new DecimalFormat("00");
        return getArtist() + ", " + getAlbum() + " - " + df.format(getTrackNumber()) + " " + getTitle();
       * position to file pointer and read the tag
       * @param rf RandomAccessFile  the file to read from
       * @param jumpPos long  the position to jump to (the tag start position)
       * @throws IOException
      public void readTag(RandomAccessFile rf, long jumpPos) throws IOException {
        rf.seek(jumpPos);
        readTag(rf);
       * read the tag from a given file, assuming the file pointer to be at the tag start position
       * @param rf RandomAccessFile  the file to read from
       * @throws IOException
      public void readTag(RandomAccessFile rf) throws IOException {
        rf.read(tagBuf);
        if(tag.equalsIgnoreCase(new String(tagBuf))) {
          rf.read(title);
          rf.read(artist);
          rf.read(album);
          rf.read(year);
          rf.read(comment);
          rf.read(trackNo);
          rf.read(genre);
      public String getTitle() {
        return new String(title).trim();
      public String getArtist() {
        return new String(artist).trim();
      public String getAlbum() {
        return new String(album).trim();
      public String getYear() {
        return new String(year).trim();
      public String getComment() {
        return new String(comment).trim();
      public int getGenreId() {
        try {
          int id = new Byte(genre[0]).intValue();
          if(id < GENRE_ID_MIN || id > GENRE_ID_MAX) {
            return GENRE_ID_OTHER;
          else {
            return id;
        catch(Exception ex) {
          return GENRE_ID_OTHER;
      public String getGenreName() {
        return genreNames[getGenreId()];
      public int getTrackNumber() {
        try {
          return (int) trackNo[0];
        catch(Exception e) {
          return 0;
       * Compares this object with the specified object for order.
       * @param o the Object to be compared.
       * @return a negative integer, zero, or a positive integer as this object is less than, equal to,
       *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Hi Franck,
    thank you, mate. I did what you suggested (changed class attached) but that did not change the mentioned behaviour.
    The first run is approximately 75 seconds with Java option -Xms40m and approx. double without, the second run and all subsequent runs are only 2-3 seconds each (!!!) even when terminating and re-starting the application between thread runs.
    I'm pretty clueless about that, any more help on this anyone?
    Thanks a lot and best regards
    Ulrich
    PS: BTW, I forgot to post the class that is filled with data by class CollectionThread, so here it is
    * Light Development Playlist Editor
    * Copyright (C) 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.app.playlisteditor.data;
    import java.io.File;
    import com.lightdev.lib.audio.ID3v11Tag;
    import javax.sound.sampled.UnsupportedAudioFileException;
    import java.io.IOException;
    import java.io.Serializable;
    import com.lightdev.lib.audio.AudioFileDescriptor;
    import com.lightdev.lib.ui.SortListModel;
    import java.util.Iterator;
    * Storage model for audio data.
    * <p>
    * <code>AudioDataModel</code> can be used to store ID3 tag data collected from
    * a directory with audio files to perform queries and reports on the found data.
    * </p>
    * <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
    * ID3 tags.</p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software as well as any licensing notes
    *      inside this documentation
    * @version 1, October 15, 2004
    public class AudioDataModel extends SortListModel implements Serializable {
       * constructor
      public AudioDataModel() {
       * add an audio track from a given audio file
       * <p>This will attempt to read ID3 tag data from the file.</p>
       * @param audioFile File  the file to add audio data for
       * @throws IOException
      public void addTrack(File audioFile) throws IOException {
        AudioFileDescriptor afd = new AudioFileDescriptor(audioFile.getAbsolutePath());
        if (!data.contains(afd)) {
          data.add(afd);
       * get all tracks for agiven combination of genre name, artist name and album name. Any of
       * the parameters may be null or AudioDataModel.FILTER_ALL
       * <p>Ugly code, I know, but it simply hard codes all combinations of the the mentioned
       * parameters. Any more elegant implementations welcome.</p>
       * @param genreName String  a genre name to get tracks for
       * @param artistName String  an artist name to get tracks for
       * @param albumName String  an album name to get tracks for
       * @return SortListModel   the found tracks in a list model
      public SortListModel getTracks(String genreName, String artistName, String albumName) {
        SortListModel foundTracks = new SortListModel();
        Iterator e = data.iterator();
        while(e.hasNext()) {
          AudioFileDescriptor afd = (AudioFileDescriptor) e.next();
          ID3v11Tag tag = afd.getID3v11Tag();
          if(genreName == null || genreName.equalsIgnoreCase(FILTER_ALL)) {
            if(artistName == null || artistName.equalsIgnoreCase(FILTER_ALL)) {
              if (tag.getAlbum().equalsIgnoreCase(albumName))
                foundTracks.add(afd);
            else {
              if(albumName == null || albumName.equalsIgnoreCase(FILTER_ALL)) {
                if (tag.getArtist().equalsIgnoreCase(artistName))
                  foundTracks.add(afd);
              else {
                if (tag.getArtist().equalsIgnoreCase(artistName) &&
                    tag.getAlbum().equalsIgnoreCase(albumName))
                  foundTracks.add(afd);
          else {
            if(artistName == null || artistName.equalsIgnoreCase(FILTER_ALL)) {
              if(albumName == null || albumName.equalsIgnoreCase(FILTER_ALL)) {
                if (tag.getGenreName().equalsIgnoreCase(genreName))
                  foundTracks.add(afd);
              else {
                if (tag.getGenreName().equalsIgnoreCase(genreName) &&
                    tag.getAlbum().equalsIgnoreCase(albumName))
                  foundTracks.add(afd);
            else {
              if(albumName == null || albumName.equalsIgnoreCase(FILTER_ALL)) {
                if (tag.getGenreName().equalsIgnoreCase(genreName) &&
                    tag.getArtist().equalsIgnoreCase(artistName))
                  foundTracks.add(afd);
              else {
                if (tag.getGenreName().equalsIgnoreCase(genreName) &&
                    tag.getArtist().equalsIgnoreCase(artistName) &&
                    tag.getAlbum().equalsIgnoreCase(albumName))
                  foundTracks.add(afd);
        foundTracks.sort();
        return foundTracks;
       * list all artists in this model
       * @return SortListModel
      public SortListModel listArtists() {
        SortListModel artists = new SortListModel();
        artists.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String artistName = tag.getArtist();
          if (artists.indexOf(artistName) < 0) {
            artists.add(artistName);
        artists.sort();
        return artists;
       * list all artists in this model having titles belonging to a given genre
       * @param genreName String  name of the genre artists are searched for
       * @return SortListModel
      public SortListModel listArtists(String genreName) {
        SortListModel artists = new SortListModel();
        artists.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String artistName = tag.getArtist();
          String genre = tag.getGenreName();
          if (artists.indexOf(artistName) < 0 && genre.equalsIgnoreCase(genreName)) {
            artists.add(artistName);
        artists.sort();
        return artists;
       * list all genres in this model
       * @return SortListModel
      public SortListModel listGenres() {
        SortListModel genres = new SortListModel();
        genres.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String genreName = tag.getGenreName();
          if (genres.indexOf(genreName) < 0) {
            genres.add(genreName);
        genres.sort();
        return genres;
       * list all albums in this model
       * @return SortListModel
      public SortListModel listAlbums() {
        SortListModel albums = new SortListModel();
        albums.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String albumName = tag.getAlbum();
          if (albums.indexOf(albumName) < 0) {
            albums.add(albumName);
        albums.sort();
        return albums;
       * list all albums in this model having titles belonging to a given genre
       * @param genreName String  name of the genre albums are searched for
       * @return SortListModel
      public SortListModel listAlbums(String genreName) {
        SortListModel albums = new SortListModel();
        albums.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String albumName = tag.getAlbum();
          String genre = tag.getGenreName();
          if (albums.indexOf(albumName) < 0 && genre.equalsIgnoreCase(genreName)) {
            albums.add(albumName);
        albums.sort();
        return albums;
       * list all albums in this model having titles belonging to a given genre and artist
       * @param genreName String  name of the genre albums are searched for
       * @param artistName String  name of the artist albums are searched for
       * @return SortListModel
      public SortListModel listAlbums(String genreName, String artistName) {
        SortListModel albums = new SortListModel();
        albums.add(FILTER_ALL);
        Iterator e = data.iterator();
        while (e.hasNext()) {
          ID3v11Tag tag = ((AudioFileDescriptor) e.next()).getID3v11Tag();
          String albumName = tag.getAlbum();
          String genre = tag.getGenreName();
          String artist = tag.getArtist();
          if(genreName == null || genreName.equalsIgnoreCase(FILTER_ALL)) {
            if (albums.indexOf(albumName) < 0 &&
                artist.equalsIgnoreCase(artistName))
              albums.add(albumName);
          else {
            if (albums.indexOf(albumName) < 0 &&
                genre.equalsIgnoreCase(genreName) &&
                artist.equalsIgnoreCase(artistName))
              albums.add(albumName);
        albums.sort();
        return albums;
       * get the number of audio tracks stored in this data model
       * @return int  the number of tracks
      public int getTrackCount() {
        return data.size();
      /** constant to select all items of a given part */
      public static final String FILTER_ALL = "    all";
    }...and here the changed CollectionThread now caching found File objects in a vector
    * Light Development Playlist Editor
    * Copyright (C) 2004 Ulrich Hilger
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * as published by the Free Software Foundation; either version 2
    * of the License, or (at your option) any later version.
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    package com.lightdev.app.playlisteditor.data;
    import com.lightdev.lib.util.InfoThread;
    import java.io.File;
    import java.util.Vector;
    import java.util.Enumeration;
    * A class to collect audio data from a given storage location.
    * <p>
    * <code>CollectionThread</code> uses ID3 tag information to gain data.
    * </p>
    * <p>See <a href="http://www.id3.org">http://www.id3.org</a> for details about
    * ID3 tags.</p>
    * @author Ulrich Hilger
    * @author Light Development
    * @author <a href="http://www.lightdev.com">http://www.lightdev.com</a>
    * @author <a href="mailto:[email protected]">[email protected]</a>
    * @author published under the terms and conditions of the
    *      GNU General Public License,
    *      for details see file gpl.txt in the distribution
    *      package of this software as well as any licensing notes
    *      inside this documentation
    * @version 1, October 13, 2004
    public class CollectionThread extends InfoThread {
       * constructor
       * @param model  AudioDataModel  the data model to collect data to
      public CollectionThread(AudioDataModel model) {
        this.model = model;
       * constructor, creates a new empty AudioDataModel
      public CollectionThread() {
        this(new AudioDataModel());
       * set the data model to collect data to
       * @param model AudioDataModel  the model to collect data to
      public void setModel(AudioDataModel model) {
        this.model = model;
       * get the data model associated to this thread
       * @return AudioDataModel  the data model
      public AudioDataModel getModel() {
        return model;
       * set the directory to collect data from
       * @param rootDir File  the directory to collect data from
      public void setRootDirectory(File rootDir) {
        this.rootDir = rootDir;
       * this is the method to prepare a thread to run.
      protected void prepareThread() {
        maxValue = -1;
        filesProcessed = 0;
        innerCount = 0;
        fileList = new Vector();
       * do the actual work of this thread, i.e. iterate through a given directory
       * structure and collect audio data
       * @return boolean  true, if work is left
      protected boolean work() {
        boolean workIsLeft = true;
        if(getStatus() < STATUS_HALT_PENDING) {
          countElements(rootDir.listFiles());
        if(getStatus() < STATUS_HALT_PENDING) {
          workIsLeft = collect(); //collect(rootDir.listFiles());
          fileList.clear();
          fileList = null;
        return workIsLeft;
       * count the elements in a given file array including its subdirectories
       * @param files File[]
      private void countElements(File[] files) {
        int i = 0;
        while (i < files.length && getStatus() < STATUS_HALT_PENDING) {
          File file = files;
    if (file.isDirectory()) {
    countElements(file.listFiles());
    else {
    fileList.add(file);
    i++;
    maxValue++;
    * read data into model
    * @param files File[] the file array representing the content of a given directory
    * @return boolean true, if work is left
    private boolean collect(/*File[] files*/) {
    Enumeration files = fileList.elements();
    while(files.hasMoreElements() && getStatus() < STATUS_HALT_PENDING) {
    File file = (File) files.nextElement();
    try {
    model.addTrack(file);
    catch(Exception e) {
    fireThreadException(e);
    filesProcessed++;
    if(++innerCount > 99) {
    innerCount = 0;
    fireThreadProgress(filesProcessed);
    return false;
    int i = 0;
    while(i < files.length && getStatus() < STATUS_HALT_PENDING) {
    File file = files[i];
    if(file.isDirectory()) {
    collect(file.listFiles());
    else if(file.getName().toLowerCase().endsWith("mp3")) {
    try {
    model.addTrack(file);
    catch(Exception e) {
    fireThreadException(e);
    i++;
    filesProcessed++;
    fireThreadProgress(filesProcessed);
    return (i<files.length);
    /** the directory to collect data from */
    private File rootDir;
    /** the data model to collect data to */
    private AudioDataModel model;
    /** the number of files this thread processed so far while it is running */
    private long filesProcessed = 0;
    /** a list to temporary store found files */
    private Vector fileList;
    /** counter to determine when to fire progress messages */
    private int innerCount = 0;

  • Need help building boost_1_37_0 on Solaris 10 U6 with Sun Studio 12

    Hi,
    Ok, please bear with me here. I've tried many different sets of instructions, and haven't had success with any of them (including the ones at http://blogs.sun.com/sga/category/Boost).
    Operating System: Solaris 10 x86 U6
    Compiler: Sun Studio 12 (SUNCC version 5.9)
    Boost version: 1.37.0
    The ONLY part of boost that I need is regex. I've never built external libraries before and building boost on Solaris seems a rather daunting task. So, could someone please explain, as clearly as possible, how do I build the boost::regex library using SUNCC?
    I know this is a very broad topic, but since I haven't had any luck with any existing instructions that google turns up, alas I am here.
    Thanks in advance if someone can help me,
    ~Slow
    Note: I don't need any special options, any special, non-standard install paths, nothing. Just a straight, stock, boost install.
    Edited by: SlowToady on Nov 10, 2008 2:18 PM

    First, be sure you have the current patches for Sun Studio 12. You can get them here:
    http://developers.sun.com/sunstudio/downloads/patches/
    Please install the current C++ compiler patch, the C compiler patch, and the common back-end compiler patch.
    You should then be able to build BOOST 1.37.0. The only problem I know of has been filed as CR 6767881, which results in an incorrect complaint about a constructor not being accessible. But I don't think that one affects regex.
    If you running into some other problem after patching the compiler, please post enough detail that we can investigate it.
    Questions about how to build just a portion of BOOST are probably best addressed to a BOOST forum.

  • TS1702 I need some help the apps were downloading slowly

    The apps downloaded but it didn't cause it's stuck in downloading mode what should I do?
    The iOS 6 update didn't work.
    Please I need some help.
    The apps didn't download.
    Talking Angela and Ginger didn't download.
    Talking Santa didn't update.

    Try moving the existing backup file to a safe location so that iTunes has to create an entire new file.  The backup file is located here. You can delete that backup once you get a successfull backup.
    iTunes places the backup files in the following places:
    Mac: ~/Library/Application Support/MobileSync/Backup/
    Windows XP: \Documents and Settings\(username)\Application Data\Apple Computer\MobileSync\Backup\
    Windows Vista and Windows 7: \Users\(username)\AppData\Roaming\Apple Computer\MobileSync\Backup\
    Note: If you do not see the AppData or Application Data folders, you may need to show hidden files (Windows XP,  Windows Vista and Windows 7), or iTunes may not be installed in the default location. Show hidden files and then search the hard drive for the Backup directory.

  • I need your help with a decision to use iPhoto.  I have been a PC user since the mid 1980's and more recently have used ACDSee to manage my photo images and Photoshop to edit them.  I have used ProShow Gold to create slideshows.  I am comfortable with my

    I need your help with a decision to use iPhoto.  I have been a PC user since the mid 1980’s and more recently have used ACDSee to manage my photo images and Photoshop to edit them.  I have used ProShow Gold to create slideshows.  I am comfortable with my own folder and file naming conventions. I currently have over 23,000 images of which around 60% are scans going back 75 years.  Since I keep a copy of the originals, the storage requirements for over 46,000 images is huge.  180GB plus.
    I now have a Macbook Pro and will add an iMac when the new models arrive.  For my photos, I want to stay with Photoshop which also gives me the Bridge.  The only obvious reason to use iPhoto is to take advantage of Faces and the link to iMovie to make slideshows.  What am I missing and is using iPhoto worth the effort?
    If I choose to use iPhoto, I am not certain whether I need to load the originals and the edited versions. I suspect that just the latter is sufficient.  If I set PhotoShop as my external editor, I presume that iPhoto will keep track of all changes moving forward.  However, over 23,000 images in iPhoto makes me twitchy and they are appear hidden within iPhoto.  In the past, I have experienced syncing problems with, and database errors in, large databases.  If I break up the images into a number of projects, I loose the value of Faces reaching back over time.
    Some guidance and insight would be appreciated.  I have a number of Faces questions which I will save for later. 

    Bridge and Photoshop is a common file-based management system. (Not sure why you'd have used ACDSEE as well as Bridge.) In any event, it's on the way out. You won't be using it in 5 years time.
    Up to this the lack of processing power on your computer left no choice but to organise this way. But file based organisation is as sensible as organising a Shoe Warehouse based on the colour of the boxes. It's also ultimately data-destructive.
    Modern systems are Database driven. Files are managed, Images imported, virtual versions, lossless processing and unlimited editing are the way forward.
    For a Photographer Photoshop is overkill. It's an enormously powerful app, a staple of the Graphic Designers' trade. A Photographer uses maybe 15% to 20% of its capability.
    Apps like iPhoto, Lightroom, Aperture are the way forward - for photographers. There's the 20% of Photoshop that shooters actually use, coupled with management and lossless processing. Pop over to the Aperture or Lightroom forums (on the Adobe site) and one comment shows up over and over again... "Since I started using Aperture/ Lightroom I hardly ever use Photoshop any more..." and if there is a job that these apps can do, then the (much) cheaper Elements will do it.
    The change is not easy though, especially if you have a long-standing and well thought out filing system of your own. The first thing I would strongly advise is that you experiment before making any decisions. So I would create a Library, import 300 or 400 shots and play. You might as well do this in iPhoto to begin with - though if you’re a serious hobbyist or a Pro then you'll find yourself looking further afield pretty soon. iPhoto is good for the family snapper, taking shots at birthdays and sharing them with friends and family.
    Next: If you're going to successfully use these apps you need to make a leap: Your files are not your Photos.
    The illustration I use is as follows: In my iTunes Library I have a file called 'Let_it_Be_The_Beatles.mp3'. So what is that, exactly? It's not the song. The Beatles never wrote an mp3. They wrote a tune and lyrics. They recorded it and a copy of that recording is stored in the mp3 file. So the file is just a container for the recording. That container is designed in a specific way attuned to the characteristics and requirements of the data. Hence, mp3.
    Similarly, that Jpeg is not your photo, it's a container designed to hold that kind of data. iPhoto is all about the data and not about the container. So, regardless of where you choose to store the file, iPhoto will manage the photo, edit the photo, add metadata to the Photo but never touch the file. If you choose to export - unless you specifically choose to export the original - iPhoto will export the Photo into a new container - a new file containing the photo.
    When you process an image in iPhoto the file is never touched, instead your decisions are recorded in the database. When you view the image then the Master is presented with these decisions applied to it. That's why it's lossless. You can also have multiple versions and waste no disk space because they are all just listings in the database.
    These apps replace the Finder (File Browser) for managing your Photos. They become the Go-To app for anything to do with your photos. They replace Bridge too as they become a front-end for Photoshop.
    So, want to use a photo for something - Export it. Choose the format, size and quality you want and there it is. If you're emailing, uploading to websites then these apps have a "good enough for most things" version called the Preview - this will be missing some metadata.
    So it's a big change from a file-based to Photo-based management, from editing files to processing Photos and it's worth thinking it through before you decide.

  • Need to backup and remove photo library form my iphone.  This library was previously backup on a hard drive that crashed.  So these photos are only in the photo library and not in the camera roll.  If I do a full backup, it only takes the camera roll.

    Need to backup and remove photo library from my iphone.  This library was previously backup on a hard drive that crashed.  So these photos are only in the photo library and not in the camera roll.  If I do a full backup, it only takes the camera roll.
    So this is a 2 part question:
    1) how to I backup the Photo Library to my new hard drive (as the last one was unrecoverable but previously backed up)
    2) how do I remove the Photo Library form my phone (preferably after backup in item 1)
    Thanks, Janis

    Since it has always been very basic to backup your computer and all it's data, Apple provides no way for you to transfer music from your iPhone back to your computer.  As you know, you can re-download all iTunes purchases, but music that you ripped yourself you'll have to just re-rip again.
    You can try and find 3rd party applications that might help you.  I'm sure you'll pay, however.
    Let this be a very important lesson learned.
    Best.

  • I need Fusion help creating a demo of BRM JCA Resource Adapter

    I need Fusion help creating a demo of BRM JCA Resource Adapter.
    I know BRM well but am clueless with Fusion.
    I am trying to figure out what Fusion products to download and install and how I manipulate the Fusion side to manipulate BRM.
    My BRM docs say:
    Installing the BRM JCA Resource Adapter ->
    Software requirements
    (yada yada install a bunch of BRM stuff I know how to do)
    The adapter must be deployed on a J2EE 1.4-compliant application server that has implemented the JCA 1.5 specification. The adapter runs only in a managed environment. (Does this imply some particular Fusion package?)
    (more yada yada about installing more BRM packages I know how to do)
    Deploying and configuring the BRM JCA Resource Adapter ->
    Overview of the BRM JCA Resource Adapter configuration procedure
    The procedure for setting up the BRM JCA Resource Adapter includes the following tasks:
    Installing the adapter on your BRM system, if you have not already done so. See Installing the BRM JCA Resource Adapter.
    Generating the schema files for the adapter. See Generating the schema files for your system. (links to some BRM commands np)
    Specifying how to construct XML tags. See Specifying the XML tags for extended fields. (links to an oob file included with directions on how to address BRM customizations np)
    Generating the WSDL files for the adapter. See Generating the WSDL files for your system. (links to an oob file with directions to configure. I could use some help if/when I get this far)
    The last two look pretty important but I haven't a clue. I pasted the text from the docs below.
    Deploying the adapter on your application server. See Deploying the BRM JCA Resource Adapter on an Oracle application server.
    Connecting the adapter to the BRM software. See Connecting the adapter to BRM in Oracle AS.
    Deploying the BRM JCA Resource Adapter on an Oracle application server
    The adapter is dependent on Java Archive (JAR) files to deploy properly. The following table lists the JAR files that the adapter requires from each application in your system.
    Application
    JAR files
    J2EE application server
    classes12.jar, connector15.jar, and jta.jar
    Oracle BPEL process
    bpm-infra.jar, orabpel-thirdparty.jar, orabpel.jar, and xmlparserv2.jar
    BRM J2EE Resource Adapter
    pcm.jar and pcmext.jar
    Apache
    xercesImpl.jar
    If you are deploying the adapter in a standalone Oracle Containers for Java EE (OC4J) instance, make sure these JAR files are available to the class loader that is loading the adapter.
    If you are deploying the adapter by using Oracle SOA Suite, these JAR files are available as part of the oracle.bpel.common code source. You import these libraries as follows:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Add the oracle.bpel.common entry (shown in bold below) to the imported-shared-libraries section of the file:
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Restart the application server or the J2EE instance.
    After you make the JAR files available, deploy the adapter on the Oracle application server by using either the Oracle Application Server (Oracle AS) Application Server Control (ASC) or the Oracle admintool.jar file. Copy the adapter archive file (BRM_home/apps/brm_integrations/jca_adapter/OracleBRMJCA15Adapter.rar) from the installation directory to a location that is accessible to the adapter deployment tool. You can then open and deploy the archive file on your application server.
    After successful deployment, return the applications.xml file to its original settings and add the oracle.bpel.common codesource to the BRM Adapter oc4j-ra.xml file:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Remove the following oracle.bpel.common entry (shown in bold below):
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Open the JCA Resource Adapter oc4j-ra.xml file from the Oracle_home/j2ee/Instance/application-deployments/default/BRMAdapterDeploymentName directory.
    Add the oracle.bpel.common entry (shown in bold below) to the oc4j-connector-factories section of the file:
    <oc4j-connector-factories...>
    <imported-shared-libraries>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    <oc4j-connector-factories>
    Save and close the file.
    Restart the application server or the J2EE instance.
    For more information about deploying the adapter, see your application server’s documentation.
    Connecting the adapter to BRM in Oracle AS
    You connect the adapter to the BRM software by creating connection pools and connection factories. As part of the adapter deployment, the application server creates oc4j-ra.xml from the packaged ra.xml. The ra.xml file is located in the Oracle_home/j2ee/Instance/connectors/AdapterDeploymentName/AdapterDeploymentName/META-INF directory. For example, Oracle_home/j2ee/home/connectors/BRMAdapter/BRMAdapter/META-INF/ra.xml.
    Use the resource adapter home page from the Oracle AS ASC page to create connection pools and connection factories.
    Create your connection pool by following the performance and tuning guidelines in Configuring Connection Pooling in OC4J in Oracle Containers for J2EE Resource Adapter Administrator's Guide. See download.oracle.com/docs/cd/B31017_01/web.1013/b28956/conncont.htm.
    Make sure you set the pool’s Maximum Connections parameter (maxConnections XML entity) equal to or greater than the Oracle BPEL process manager’s dspMaxThreads parameter. For more information, see Oracle BPEL Process Manager Performance Tuning in Oracle Application Server Performance Guide for 10g Release 3 (10.1.3.1.0) at download.oracle.com/docs/cd/B31017_01/core.1013/b28942/tuning_bpel.htm.
    Note To set up JCA Resource Adapter transaction management in BPEL, you must create a private connection pool and set its Inactive Connection Timeout property (inactivity-timeout XML entity) to 0. See About JCA Resource Adapter transaction management in BPEL for more information.
    Create as many connection factories as your system needs. For each connection factory, specify the following:
    The JNDI location for the connection factory.
    The connection pool to use.
    How to connect to BRM by using these entries:
    Entry
    Description
    ConnectionString
    Specify the protocol, host name, and port number for connecting to the BRM software. For example: ip Server1 12006.
    DBNumber
    Specify the database number for the BRM database. For example, enter 1 or 0.0.0.1 for database 0.0.0.1.
    InputValidation
    Specifies whether to validate the input XMLRecord:
    True — The adapter validates the input XMLRecord against the opcode schema.
    False — The adapter does not validate the input XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    OutputValidation
    Specifies whether to validate the output XMLRecord:
    True — The adapter validates the output XMLRecord against the opcode schema.
    False — The adapter does not validate the output XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    LoginType
    Specifies the authentication method:
    1 — The adapter logs in to BRM by using the specified login name and password.
    0 — The adapter logs in to BRM by using the specified service type and POID ID.
    The default is 1.
    UserName
    Specifies the login name the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    Password
    Specify the password the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    PoidID
    Specifies the POID ID. This entry should be set to 1.
    ServiceType
    Specifies the service the adapter uses to log in to the BRM software.
    The default is /service/pcm_client.
    You have successfully configured the adapter to connect to BRM.

    I need Fusion help creating a demo of BRM JCA Resource Adapter.
    I know BRM well but am clueless with Fusion.
    I am trying to figure out what Fusion products to download and install and how I manipulate the Fusion side to manipulate BRM.
    My BRM docs say:
    Installing the BRM JCA Resource Adapter ->
    Software requirements
    (yada yada install a bunch of BRM stuff I know how to do)
    The adapter must be deployed on a J2EE 1.4-compliant application server that has implemented the JCA 1.5 specification. The adapter runs only in a managed environment. (Does this imply some particular Fusion package?)
    (more yada yada about installing more BRM packages I know how to do)
    Deploying and configuring the BRM JCA Resource Adapter ->
    Overview of the BRM JCA Resource Adapter configuration procedure
    The procedure for setting up the BRM JCA Resource Adapter includes the following tasks:
    Installing the adapter on your BRM system, if you have not already done so. See Installing the BRM JCA Resource Adapter.
    Generating the schema files for the adapter. See Generating the schema files for your system. (links to some BRM commands np)
    Specifying how to construct XML tags. See Specifying the XML tags for extended fields. (links to an oob file included with directions on how to address BRM customizations np)
    Generating the WSDL files for the adapter. See Generating the WSDL files for your system. (links to an oob file with directions to configure. I could use some help if/when I get this far)
    The last two look pretty important but I haven't a clue. I pasted the text from the docs below.
    Deploying the adapter on your application server. See Deploying the BRM JCA Resource Adapter on an Oracle application server.
    Connecting the adapter to the BRM software. See Connecting the adapter to BRM in Oracle AS.
    Deploying the BRM JCA Resource Adapter on an Oracle application server
    The adapter is dependent on Java Archive (JAR) files to deploy properly. The following table lists the JAR files that the adapter requires from each application in your system.
    Application
    JAR files
    J2EE application server
    classes12.jar, connector15.jar, and jta.jar
    Oracle BPEL process
    bpm-infra.jar, orabpel-thirdparty.jar, orabpel.jar, and xmlparserv2.jar
    BRM J2EE Resource Adapter
    pcm.jar and pcmext.jar
    Apache
    xercesImpl.jar
    If you are deploying the adapter in a standalone Oracle Containers for Java EE (OC4J) instance, make sure these JAR files are available to the class loader that is loading the adapter.
    If you are deploying the adapter by using Oracle SOA Suite, these JAR files are available as part of the oracle.bpel.common code source. You import these libraries as follows:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Add the oracle.bpel.common entry (shown in bold below) to the imported-shared-libraries section of the file:
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Restart the application server or the J2EE instance.
    After you make the JAR files available, deploy the adapter on the Oracle application server by using either the Oracle Application Server (Oracle AS) Application Server Control (ASC) or the Oracle admintool.jar file. Copy the adapter archive file (BRM_home/apps/brm_integrations/jca_adapter/OracleBRMJCA15Adapter.rar) from the installation directory to a location that is accessible to the adapter deployment tool. You can then open and deploy the archive file on your application server.
    After successful deployment, return the applications.xml file to its original settings and add the oracle.bpel.common codesource to the BRM Adapter oc4j-ra.xml file:
    Open the Oracle_home/j2ee/Instance/config/applications.xml configuration file for the J2EE instance.
    Remove the following oracle.bpel.common entry (shown in bold below):
    <imported-shared-libraries>
    <import-shared-library name="adf.oracle.domain"/>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    Save and close the file.
    Open the JCA Resource Adapter oc4j-ra.xml file from the Oracle_home/j2ee/Instance/application-deployments/default/BRMAdapterDeploymentName directory.
    Add the oracle.bpel.common entry (shown in bold below) to the oc4j-connector-factories section of the file:
    <oc4j-connector-factories...>
    <imported-shared-libraries>
    <import-shared-library name="oracle.bpel.common"/>
    </imported-shared-libraries>
    <oc4j-connector-factories>
    Save and close the file.
    Restart the application server or the J2EE instance.
    For more information about deploying the adapter, see your application server’s documentation.
    Connecting the adapter to BRM in Oracle AS
    You connect the adapter to the BRM software by creating connection pools and connection factories. As part of the adapter deployment, the application server creates oc4j-ra.xml from the packaged ra.xml. The ra.xml file is located in the Oracle_home/j2ee/Instance/connectors/AdapterDeploymentName/AdapterDeploymentName/META-INF directory. For example, Oracle_home/j2ee/home/connectors/BRMAdapter/BRMAdapter/META-INF/ra.xml.
    Use the resource adapter home page from the Oracle AS ASC page to create connection pools and connection factories.
    Create your connection pool by following the performance and tuning guidelines in Configuring Connection Pooling in OC4J in Oracle Containers for J2EE Resource Adapter Administrator's Guide. See download.oracle.com/docs/cd/B31017_01/web.1013/b28956/conncont.htm.
    Make sure you set the pool’s Maximum Connections parameter (maxConnections XML entity) equal to or greater than the Oracle BPEL process manager’s dspMaxThreads parameter. For more information, see Oracle BPEL Process Manager Performance Tuning in Oracle Application Server Performance Guide for 10g Release 3 (10.1.3.1.0) at download.oracle.com/docs/cd/B31017_01/core.1013/b28942/tuning_bpel.htm.
    Note To set up JCA Resource Adapter transaction management in BPEL, you must create a private connection pool and set its Inactive Connection Timeout property (inactivity-timeout XML entity) to 0. See About JCA Resource Adapter transaction management in BPEL for more information.
    Create as many connection factories as your system needs. For each connection factory, specify the following:
    The JNDI location for the connection factory.
    The connection pool to use.
    How to connect to BRM by using these entries:
    Entry
    Description
    ConnectionString
    Specify the protocol, host name, and port number for connecting to the BRM software. For example: ip Server1 12006.
    DBNumber
    Specify the database number for the BRM database. For example, enter 1 or 0.0.0.1 for database 0.0.0.1.
    InputValidation
    Specifies whether to validate the input XMLRecord:
    True — The adapter validates the input XMLRecord against the opcode schema.
    False — The adapter does not validate the input XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    OutputValidation
    Specifies whether to validate the output XMLRecord:
    True — The adapter validates the output XMLRecord against the opcode schema.
    False — The adapter does not validate the output XMLRecord.
    The default is False.
    This overrides any other validation parameter specified in the WSDL file.
    LoginType
    Specifies the authentication method:
    1 — The adapter logs in to BRM by using the specified login name and password.
    0 — The adapter logs in to BRM by using the specified service type and POID ID.
    The default is 1.
    UserName
    Specifies the login name the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    Password
    Specify the password the adapter uses for logging in to the BRM software.
    Note This entry is required only if LoginType is set to 1.
    PoidID
    Specifies the POID ID. This entry should be set to 1.
    ServiceType
    Specifies the service the adapter uses to log in to the BRM software.
    The default is /service/pcm_client.
    You have successfully configured the adapter to connect to BRM.

  • Need some help: my itunes won't sync with my iphone anymore. Both softwares are up to date and I've reinstalled itunes. After I reinstall, it syncs. But then when I reboot my computer, it no longer syncs anymore and I have to keep reinstalling itunes. Tho

    Need some help: my itunes won't sync with my iphone anymore. Both softwares are up to date and I've reinstalled itunes. After I reinstall, it syncs. But then when I reboot my computer, it no longer syncs anymore and I have to keep reinstalling itunes. Thoughts???

    thought that it was possible to have the same iTunes library on any machine that was authorised, a kind of cloud-iTunes I guess. 
    That would convenient, but sadly it is not the case. Sorry!
    Either way your welcome and best of luck!
    B-rock

Maybe you are looking for