Need a help on Item Alignment

I am trying to align the first name, middle name and last name in my demo example. Item are not placed directly after the items. There is some gap between them.
I know one way by adding an item of type Stop and Start HTML Table in the middle of the region but that caused 2nd row lable alignment.
Please have a look on.
http://apex.oracle.com/pls/otn/f?p=21900:4:549087666080845:::::
Please help....
Thanks

Ayadav,
Set the Emp Special Info ColSpan to 3 and Emp Manager ColSpan to 2.
That should do the work.
Denes Kubicek
http://deneskubicek.blogspot.com/
http://htmldb.oracle.com/pls/otn/f?p=31517:1
-------------------------------------------------------------------

Similar Messages

  • Need programming help: Three Items selected, only one item displays.

    All the code is below.
    My client has a beach-wear website. It is VERY simple with three pages: Index, Order, and Invoice Page. If customers select the checkbox in front of three items, only one item is displayed on the invoice page. Why aren't all three displayed? I am new to programming:
    //INDEX PAGE:
    <title>Beachwear Title</title>
    <body bgcolor="#FFFFFF">
    <p> </p>
    <form name="form1" method="get" action="jserv/Search.jsp">
    <table width="52%" border="1">
    <tr>
    <td width="20%">Enter Color:</td>
    <td width="80%">
    <input type="text" name="txtColor" size="30" maxlength="20">
    </td>
    </tr>
    </table>
    <p>
    <input type="submit" name="Submit" value="Color">
    </p>
    </form>
    <p> </p>
    //SEARCH PAGE:
    <%@page language="java" import="java.sql.*"%>
    <%@ include file="../Connections/connBeachwear.jsp" %>
    <%
    String rsBeachwear__varColor = "%";
    if (request.getParameter ("txtColor") !=null) {rsBeachwear__varColor = (String)request.getParameter ("txtColor");}
    %>
    <%
    Driver DriverrsBeachwear = (Driver)Class.forName(MM_connBeachwear_DRIVER).newInstance();
    Connection ConnrsBeachwear = DriverManager.getConnection(MM_connBeachwear_STRING,MM_connBeachwear_USERNAME,MM_connBeachwear_PASSWORD);
    PreparedStatement StatementrsBeachwear = ConnrsBeachwear.prepareStatement("SELECT ID, Item, Color, Size FROM Beachwear WHERE Color LIKE '%" + rsBeachwear__varColor + "%';");
    ResultSet rsBeachwear = StatementrsBeachwear.executeQuery();
    boolean rsBeachwear_isEmpty = !rsBeachwear.next();
    boolean rsBeachwear_hasData = !rsBeachwear_isEmpty;
    Object rsBeachwear_data;
    int rsBeachwear_numRows = 0;
    %>
    <%
    int Repeat1__numRows = 10;
    int Repeat1__index = 0;
    rsBeachwear_numRows += Repeat1__numRows;
    %>
    <title>Beachwear Title</title>
    <body bgcolor="#FFFFFF">
    <p> </p>
    <p> 
    <form name="form2" method="post" action="Invoice.jsp">
    <table width="75%" border="1">
    <% while ((rsBeachwear_hasData)&&(Repeat1__numRows-- != 0)) { %>
    <tr>
    <td width="18%"><%=(((rsBeachwear_data = rsBeachwear.getObject("ID"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    <td width="20%"><%=(((rsBeachwear_data = rsBeachwear.getObject("Item"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    <td width="21%"><%=(((rsBeachwear_data = rsBeachwear.getObject("Color"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    <td width="5%"><%=(((rsBeachwear_data = rsBeachwear.getObject("Size"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    <td width="16%">
    <input type="checkbox" name="valueCheckbox" value="<%=(((rsBeachwear_data = rsBeachwear.getObject("ID"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%>">
    </td>
    </tr>
    <%
    Repeat1__index++;
    rsBeachwear_hasData = rsBeachwear.next();
    %>
    </table>
    <p>
    <input type="submit" name="Submit" value="Submit">
    </p>
    </form>
    <%
    rsBeachwear.close();
    ConnrsBeachwear.close();
    %>
    //INVOICE PAGE:
    <%@page language="java" import="java.sql.*"%>
    <%@ include file="../Connections/connBeachwear.jsp" %>
    <%
    String rsBeachwear__varCheckbox = "1";
    if (request.getParameter ("valueCheckbox") !=null) {rsBeachwear__varCheckbox = (String)request.getParameter ("valueCheckbox")   ;}
    %>
    <%
    Driver DriverrsBeachwear = (Driver)Class.forName(MM_connBeachwear_DRIVER).newInstance();
    Connection ConnrsBeachwear = DriverManager.getConnection(MM_connBeachwear_STRING,MM_connBeachwear_USERNAME,MM_connBeachwear_PASSWORD);
    PreparedStatement StatementrsBeachwear = ConnrsBeachwear.prepareStatement("SELECT ID, Item, Color, Size FROM Beachwear WHERE ID IN (" + rsBeachwear__varCheckbox + ")");
    ResultSet rsBeachwear = StatementrsBeachwear.executeQuery();
    boolean rsBeachwear_isEmpty = !rsBeachwear.next();
    boolean rsBeachwear_hasData = !rsBeachwear_isEmpty;
    Object rsBeachwear_data;
    int rsBeachwear_numRows = 0;
    %>
    <%
    int Repeat1__numRows = 10;
    int Repeat1__index = 0;
    rsBeachwear_numRows += Repeat1__numRows;
    %>
    <title>Beachwear Title</title>
    <body bgcolor="#FFFFFF">
    <p> </p>
    <p> 
    <p><br>
    INVOICE<br>
    <br>
    </p>
    <table width="75%" border="1">
    <% while ((rsBeachwear_hasData)&&(Repeat1__numRows-- != 0)) { %>
    <tr>
    <td width="18%"><%=(((rsBeachwear_data = rsBeachwear.getObject("ID"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    <td width="20%"><%=(((rsBeachwear_data = rsBeachwear.getObject("Item"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    <td width="21%"><%=(((rsBeachwear_data = rsBeachwear.getObject("Color"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    <td width="5%"><%=(((rsBeachwear_data = rsBeachwear.getObject("Size"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    </tr>
    <%
    Repeat1__index++;
    rsBeachwear_hasData = rsBeachwear.next();
    %>
    </table>
    <p>  </p>
    <%
    rsBeachwear.close();
    ConnrsBeachwear.close();
    %>

    Hi, Brad,
    I appreciate your help! I am a beginning Java student, so this code is more complex than what I can handle alone.
    A copy of the compilation error is at the very bottom of this message.
    I added " int chkValues[]; " to the beginning of your code, and then inserted the whole code snippet to the detail (Invoice) page as shown:
    <%@page language="java" import="java.sql.*"%>
    <%@ include file="../Connections/connBeachwear.jsp" %>
    <%
    String rsBeachwear__varCheckbox = "1";
    if (request.getParameter ("valueCheckbox") !=null) {rsBeachwear__varCheckbox = (String)request.getParameter ("valueCheckbox")   ;}
    %>
    <%
    Driver DriverrsBeachwear = (Driver)Class.forName(MM_connBeachwear_DRIVER).newInstance();
    Connection ConnrsBeachwear = DriverManager.getConnection(MM_connBeachwear_STRING,MM_connBeachwear_USERNAME,MM_connBeachwear_PASSWORD);
    int chkValues[];
    StringBuffer prepStr=new StringBuffer("SELECT ID, Item, Color, Size FROM Beachwear WHERE ID=");
    for(int x=0;x<chkValues.length;++x){
    prepStr.append( chkValues[x] );//using an x instead of an i
    if((x+1)<chkValues.length){//another iteration
    prepStr.append(" OR ID=");
    }//end if
    }//end for loop
    PreparedStatement StatementrsBeachwear = ConnrsBeachwear.preparedStatement(prepStr);
    ResultSet rsBeachwear = StatementrsBeachwear.executeQuery();
    boolean rsBeachwear_isEmpty = !rsBeachwear.next();
    boolean rsBeachwear_hasData = !rsBeachwear_isEmpty;
    Object rsBeachwear_data;
    int rsBeachwear_numRows = 0;
    %>
    <%
    int Repeat1__numRows = -1;
    int Repeat1__index = 0;
    rsBeachwear_numRows += Repeat1__numRows;
    %>
    <title>Beachwear Title</title>
    <body bgcolor="#FFFFFF">
    <p> </p>
    <p> 
    <form name="form1" method="post" action="">
    <p><br>
    INVOICE<br>
    <br>
    </p>
    <% while ((rsBeachwear_hasData)&&(Repeat1__numRows-- != 0)) { %>
    <table width="75%" border="1">
    <tr>
    <td width="13%">ID:</td>
    <td width="87%"><%=(((rsBeachwear_data = rsBeachwear.getObject("ID"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    </tr>
    <tr>
    <td width="13%">ITEM:</td>
    <td width="87%"><%=(((rsBeachwear_data = rsBeachwear.getObject("Item"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    </tr>
    <tr>
    <td width="13%">COLOR:</td>
    <td width="87%"><%=(((rsBeachwear_data = rsBeachwear.getObject("Color"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    </tr>
    <tr>
    <td width="13%">SIZE:</td>
    <td width="87%"><%=(((rsBeachwear_data = rsBeachwear.getObject("Size"))==null || rsBeachwear.wasNull())?"":rsBeachwear_data)%></td>
    </tr>
    </table>
    <%
    Repeat1__index++;
    rsBeachwear_hasData = rsBeachwear.next();
    %>
    <p>  </p>
    </form>
    <%
    rsBeachwear.close();
    ConnrsBeachwear.close();
    %>
    ERROR:
    500 Internal Server Error
    /jserv/Invoice.jsp:
    Compilation error occured:
    Found 1 errors in JSP file:
    C:\\Inetpub\\wwwroot\\Beachwear\\jserv\\Invoice.jsp:27: Error: No method named "preparedStatement" was found in type "java/sql/Connection".
    allaire.jrun.scripting.DefaultCFE:
    Errors reported by compiler:C:/Program Files/Allaire/JRun/servers/default/default-app/WEB-INF/jsp/jrun__jserv__Invoice2ejsp12.java:82:42:82:83: Error: No method named "preparedStatement" was found in type "java/sql/Connection".
         at allaire.jrun.scripting.JavaCompilerService.compile(../scripting/JavaCompilerService.java:96)

  • HT201209 What can I do...I'm having problems with the secret questions and I need to buy an item now....I'm pretty sure I answer ok as I have written down everything.....help me please....

    Please help me, I need to buy an item but there problems with the questions..I'm sure I wrote the correct answer as I have written down just in case but it of not use..... What can I do???...this is my first time in buying a iTunes card....

    Was it purchased from an official Apple Store, not a reseller?  Only Apple Stores sell official factory unlocked phones.  The others sell hacked to unlock phones, and the unlocking is unstable.
    Try these steps, as needed:
    1. Reset phone - press both home and on/off buttons for at least 10 seconds until the Apple logo appears.
    2. Settings > General > Reset > Reset Network Settings.
    3. Replace SIM card (and reset network settings again)
    4. Restore Phone in iTunes using a backup
    5. Restore in iTunes as new, without using a backup

  • Help needed! GMail sent items missing from Apple Mail!

    I need your help to solve a problem that I've identified recently in Apple Mail with a GMail account:
    I have a POP-enabled GMail account in Mail, but also with IMAP functionality enabled through GMail's webmail settings (probably because I access it also from my iPad).
    However, I notice that my local "Sent" mailbox in Mail only contains some 140 messages, even if a visit to GMail's webmail page shows me that I have at least 1200 "sent" messages.
    I must note that my advanced mailbox settings in Mail do NOT allow for automatic deletion of sent items.
    So my question is: how to make sure that I do not lose ANY sent items from GMail or any other account for that matter (i.e., that whatever is sent remains in the local "sent" mailbox in Mail)? Am I missing something?
    Thanks a lot in advance for your help.

    Or am I saying something stupid?
    No I don't think so. But from what you're saying, the only copies of sent messages on your computer will be what you are sending from the computer. The messages sent from the iPad or website are not stored on the computer. If it were all set as IMAP, they will be available on all devices.
    Thanks a lot for your attentive reply - my only concern is that, when I activate IMAP, I won't be able anymore to have a steady copy of all items in my sent items folder on Apple Mail, nor to delete what I want at will.
    Changing it to IMAP will make the all sent items available on the server to your computer, website, and other devices. They will always be there as long as you don't delete them from the server. The messages you manually delete will delete them from the server and all devices. If you want a local backup, then copy them to a local folder which will not remove them from the server or move them to a local folder which will delete them from the server.
    Auto syncing does not in any way interfere with local folders on the Mac. The only IMAP folders you can sync are the inbox, sent, drafts, and junk. Inbox is the only mailbox that has to be synced (it's done automatically and you can't change it). I also sync the Sent and Trash. I don't sync (store messages on the server) the drafts or junk mailbox.
    I don't understand what you mean by not being able to delete messages from the Inbox. I do it all the time. What happens when you delete it depends on your settings in gmail. Gmail has some peculiar settings like having a deleted items folder besides the Trash folder.  The default is to delete from inbox, it goes to the deleted items folder. Delete it from there, and it goes to Trash. Delete it from trash to get rid of it. The fact is that the All Mail folder shows the message no matter what folder it in. I have mine set to move it straight to the trash when moved from the last visible IMAP folder. So, when I delete it from Mail's Inbox, it moves it to the trash just as local messages do.
    If you plan to do your email from the computer only, then POP is fine. If you plan to use the website and iPad also, then IMAP is the way to go.
    That way everything in mail is available no matter where you look at it. The only things you won't see is what you move to local folders.
    Seems like you should go to gmail's website and read the help files to become more familiar with it. Also look at all the settings available (expecially the Labels Tab, Accounts tab, and Forwarding Tab. These settings will be what you will use mostly to customize how it works and flows with the Mac. If you're going to use IMAP, you need to understand what they do exactly and what you want them to do for you.
    My sole objective: to keep ALL messages in Apple Mail (except those I expressly delete), as well as ALL messages in Google.
    IMAP does exactly this for you already. By leaving it on the server, they are on the computer. In Mails preference settings in the Accounts / Advanced Tab, for IMAP accounts keep the setting for storing messages for offline viewing. That way Mail actually does store a copy locally until you delete it from the server. And that will be backed up with your computer backup.
    And what you do delete from any device will duplicate it elsewhere.

  • Please Help! I need a report: Total Items sold from each Supplier.

    Dear experts
    I would like to build a Query\Report that will show the TOTAL amount of items sold (in invoices) from each supplier.
    This is not possible in the reports section, because it is not your regular Salles per cards\items report.
    I want the report to show a sum per line. meaning:
    I have totally sold from Supplier:'XYZ'  5,123 items (no matter which ones) at a total of 75,540$
    I would like the report to show ALL suppliers , thus the reason i want it to show 1 supplier-per line.
    I couldnt figure out how to write this Query and if its even possible to make a 'sum per line' report. (like the ones that you output with default report section).
    Personally , I found it really odd that it is not in the default reports option, It is higly common for organization to check Who is its Top supplier (in sales) in order to decied how to continue doing buisness with him.
    Could any of you experts assist me in writing this Supplier-Sales-Report?
    Thank you in advanced,
    D.Medalion

    Hi Medalion,
    Have you tried using sales analysis reports. Yyou can view items sold to particular customer in that report too. You need to click on items-->tick individual display and tick group by customers. This would give your desired format. Is there anyrhing else that you are looking for ??
    You may also check these to get an idea;
    Re: Query for top 5 items/customers
    Query for top 5 items
    This would require s user id and pass word
    https://websmp205.sap-ag.de/~sapidb/011000358700001172792006E
    Thanks,
    Joseph
    Edited by: Joseph Antony on Aug 6, 2010 11:19 AM

  • Need some help with region position

    Hi,
    I need som help with regions position....
    Background:
    I have 2 regions, I will call them reg1, reg2 and reg3.
    reg1 = Page Template Body (2. items below region content), column 1, search region.
    reg2 = Page Template Body (2. items below region content), column 2, import file region.
    reg3 = Page Template Body (3. items above region content), column 1, search result, grid region, very wide.
    Issue with the position, the setup explained makes my layout like this
    reg1--------------------------------reg2
    ------------------reg3--------------------
    What I want:
    reg1-reg2
    ------------------reg3--------------------
    What am I doing wrong?
    Regards Daniel

    Daniel,
    this will also work:
    Region1 HTML table cell attributes
    width="10%"
    Region2 HTML table cell attributes
    align="left"
    without touching the page template.
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://htmldb.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • 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;

  • With 3.6.12, Help menu item "For Internet Explorer Users" results in a "Page Not Found" error. Is this a known bug? Is it being addressed?

    Clicking the 3.6.12 Help menu item "For Internet Explorers" item results in a "Page Not Found" error.
    The URL of the resultant page is https://support.mozilla.com/en-US/kb/Windows%20start%20page?as=u
    Is this a known bug, if so, is it being addressed? If so, someone needs to work faster.
    If it is not a known bug, someone needs to get right on it - you want people to switch to Firefox and then there is this bug -- not a good way to impress Internet Explorer users.

    Hi Claudio Roca,
    I have encountered the same problem. Do you found the solution for this issue? I will much appreciated if you willing to share your solution and email to [email protected] Thank you so much.
    Regards,
    Hau Chee

  • I need urgent help to remove unwanted adware from my iMac. Help!

    I need urgent help to remove unwanted adware from my iMac. I have somehow got green underline in text ads, pop up ads that come in from the sides of the screen and ads that pop up selling similar products all over the page wherever I go. Its getting worse and I have researched and researched to no avail. I am really hestitant to download any software to remove whatever it is that is causing this problem. I have removed and reinstalled chrome. I have cleared Chrome and Safari cookies. Checked extensions, there are none to remove. I need to find an answer on how to get rid of these ads. Help please!

    You installed the "DownLite" trojan, perhaps under a different name. Remove it as follows.
    Back up all data.
    Triple-click anywhere in the line below on this page to select it:
    /Library/Application Support/VSearch
    Right-click or control-click the line and select
    Services ▹ Reveal in Finder (or just Reveal)
    from the contextual menu.* A folder should open with an item named "VSearch" selected. Drag the selected item to the Trash. You may be prompted for your administrator login password.
    Repeat with each of these lines:
    /Library/LaunchAgents/com.vsearch.agent.plist
    /Library/LaunchDaemons/com.vsearch.daemon.plist
    /Library/LaunchDaemons/com.vsearch.helper.plist
    /Library/LaunchDaemons/Jack.plist
    /Library/PrivilegedHelperTools/Jack
    /System/Library/Frameworks/VSearch.framework
    Some of these items may be absent, in which case you'll get a message that the file can't be found. Skip that item and go on to the next one.
    Restart and empty the Trash. Don't try to empty the Trash until you have restarted.
    From the Safari menu bar, select
    Safari ▹ Preferences... ▹ Extensions
    Uninstall any extensions you don't know you need, including any that have the word "Spigot" in the description. If in doubt, uninstall all extensions. Do the equivalent for the Firefox and Chrome browsers, if you use either of those.
    This trojan is distributed on illegal websites that traffic in pirated movies. If you, or anyone else who uses the computer, visit such sites and follow prompts to install software, you can expect much worse to happen in the future.
    You may be wondering why you didn't get a warning from Gatekeeper about installing software from an unknown developer, as you should have. The reason is that the DownLite developer has a codesigning certificate issued by Apple, which causes Gatekeeper to give the installer a pass. Apple could revoke the certificate, but as of this writing, has not done so, even though it's aware of the problem. It must be said that this failure of oversight is inexcusable and has seriously compromised the value of Gatekeeper and the Developer ID program. You cannot rely on Gatekeeper alone to protect you from harmful software.
    *If you don't see the contextual menu item, copy the selected text to the Clipboard by pressing the key combination  command-C. In the Finder, select
    Go ▹ Go to Folder...
    from the menu bar and paste into the box that opens by pressing command-V. You won't see what you pasted because a line break is included. Press return.

  • Need some help with downloading PDF's from the net.

    need some help with downloading PDF's from the net.  Each time I try to click on a link from a website, if it takes me to a new screen to view a pdf, it just comes up as a blank black screen?  any suggestions?

    Back up all data.
    Triple-click the line of text below to select it, the copy the selected text to the Clipboard (command-C):
    /Library/Internet Plug-ins
    In the Finder, select
    Go ▹ Go to Folder
    from the menu bar, or press the key combination shift-command-G. Paste into the text box that opens (command-V), then press return.
    From the folder that opens, remove any items that have the letters “PDF” in the name. You may be prompted for your login password. Then quit and relaunch Safari, and test.
    The "Silverlight" web plugin distributed by Microsoft can also interfere with PDF display in Safari, so you may need to remove it as well, if it's present.
    If you still have the issue, repeat with this line:
    ~/Library/Internet Plug-ins
    If you don’t like the results of this procedure, restore the items from the backup you made before you started. Relaunch Safari again.

  • HELP: Formula Item data is not saved to database

    Hi:
    I've added a formula in a database item but when i commit the form the data is not saved to the database. When i am working on form the item reflects the formula value, but when i commit the value is not stored in the database.
    I need urgent help.
    Thanks
    Joao Oliveira

    It is not clearly stated in the help file I agree. With a little PLSQL code you could copy the item to a hidden database field and have it be saved to the database. See Note 43012.1 on Metalink for details.

  • Need a help on Update statement

    Hi All,
    I Need a help in updating a table column. PFB my requirement.
    Table1
    ItemID OrgId       Date
    1       82     12/sep/2012   
    2       82     25/oct/2012
    3       82     17/Nov/2012
    4     82     22/Jan/2013
    5     82     26/sep/2012
    Table2
    Itemid     orgid       Date1
    1      82     23/sep/2012      
    2      82     25/Dec/2012
    3      82     17/Sep/2012
    4      82     22/Feb/2013
    5      82     26/Oct/2012
    Table3
    Itemid     orgid       Date3
    1      82     10/sep/2012      
    7      82     30/Dec/2012
    3      82     12/Sep/2012
    10      82     27/Feb/2013
    5      82     29/Oct/2012
    I Need to Update Date column of Table1 With Date3 of table3
    If
    Item and org combination is present in table3 and date column of table1 is less than Date3 of table3
    Else
    I need to Update with date2 of table2.Can we acheive this in a single update statement, can any one help me on this.
    Thanks and regards,
    Rakesh
    Edited by: Venkat Rakesh on Sep 27, 2012 11:04 PM

    You can probably also use MERGE:
    --DROP TABLE table1;
    --DROP TABLE table2;
    --DROP TABLE table3;
    ALTER SESSION SET nls_language = 'AMERICAN';
    CREATE TABLE table1
       itemid    CHAR (1),
       orgid     CHAR (2),
       thedate   DATE
    INSERT INTO table1   SELECT '1', '82', TO_DATE ('10/sep/2011', 'dd/mon/yyyy') FROM DUAL;
    INSERT INTO table1   SELECT '2', '82', TO_DATE ('10/oct/2011', 'dd/mon/yyyy') FROM DUAL;
    INSERT INTO table1   SELECT '3', '82', TO_DATE ('10/nov/2011', 'dd/mon/yyyy') FROM DUAL;
    INSERT INTO table1   SELECT '4', '82', TO_DATE ('10/jan/2011', 'dd/mon/yyyy') FROM DUAL;
    INSERT INTO table1   SELECT '5', '82', TO_DATE ('10/sep/2011', 'dd/mon/yyyy') FROM DUAL;-- won't be updated
    CREATE TABLE table2
       itemid    CHAR (1),
       orgid     CHAR (2),
       thedate   DATE
    INSERT INTO table2   SELECT '1', '82', TO_DATE ('01/sep/2012', 'dd/mon/yyyy') FROM DUAL;
    INSERT INTO table2   SELECT '2', '82', TO_DATE ('01/dec/2012', 'dd/mon/yyyy') FROM DUAL;
    INSERT INTO table2   SELECT '3', '82', TO_DATE ('01/sep/2012', 'dd/mon/yyyy') FROM DUAL;
    INSERT INTO table2   SELECT '4', '82', TO_DATE ('01/feb/2012', 'dd/mon/yyyy') FROM DUAL;
    CREATE TABLE table3
       itemid    CHAR (1),
       orgid     CHAR (2),
       thedate   DATE
    INSERT INTO table3   SELECT '2', '82', TO_DATE ('30/dec/2009', 'dd/mon/yyyy') FROM DUAL; -- date less than table1, so picks from table2
    INSERT INTO table3   SELECT '4', '82', TO_DATE ('30/mar/2013', 'dd/mon/yyyy') FROM DUAL; -- larger than table1 , so pick this date
    -- table1 original data
    SELECT * FROM table1;
    -- merge new data
    MERGE INTO table1
         USING (SELECT NVL (t1.itemid, t2.itemid) itemid,
                       NVL (t1.orgid, t2.orgid) orgid,
                       t2.thedate prefdate ,
                       t1.thedate nextdate
                  FROM    table2 t1
                       FULL OUTER JOIN
                          table3 t2
                       ON t1.itemid = t2.itemid AND t1.orgid = t2.orgid) dat
            ON (dat.itemid = table1.itemid AND dat.orgid = table1.orgid)
    WHEN MATCHED
    THEN
       UPDATE SET table1.thedate = (case when prefdate > table1.thedate then prefdate else nextdate end) ;
    --table1 updated data
    SELECT * FROM table1;OUTPUT:
    Session altered.
    Table created.
    1 row created.
    1 row created.
    1 row created.
    1 row created.
    1 row created.
    Table created.
    1 row created.
    1 row created.
    1 row created.
    1 row created.
    Table created.
    1 row created.
    1 row created.
    ITEMID ORGID THEDATE  
    1      82    10.09.2011
    2      82    10.10.2011
    3      82    10.11.2011
    4      82    10.01.2011
    5      82    10.09.2011
    5 rows selected.
    4 rows merged.
    ITEMID ORGID THEDATE  
    1      82    01.09.2012
    2      82    01.12.2012
    3      82    01.09.2012
    4      82    30.03.2013
    5      82    10.09.2011
    5 rows selected.

  • Need Mapping Help: Generate index if value comes

    Hi Experts,
    I need mapping help to generate index if value comes form source. we have 4 fields in item level of source and target side we have to pass the these filed values and sequence number.
    below given the structures:
    Source:              Target:
    Item                    Item
       A1                      Text
        A2                      Seq_No
        A3
        A4
    my requirement is if A1 filed values comes from source we should pass to text and pass seq_no to constant-1, same as A2,A3 and A4 filed values also we should pass to text and seq_no for A2 is 2 and A3 is 3 and A4 is 4. suppose if A1 value is not coming from source we should pass seq_no for A2 is 1. if A1 and A3 filed values are not coming from source then we should pass seq_no for A2 and A3 are 1 and 2.
    can you please help me how to achieve this. appreciate for your support.
    Regards,
    Sanjay.

    Hi Sanjay,
                      you can  try this mapping
    1. Generate the target 4  ITEM's  by duplicating the subtree as shown below 3 times.
    Now create the each target item starting from first by mapping them to A1,A2,A3 and A4 respectively. I have shown the first ITEM mapping above. similarly you can map A2 to ITEM[1],
    A3 to ITEM[2] and A4 to ITEM[3].
    2. Now you can map the A* fields to Text one to one as shown below
    Please repeat the same for A2,A3 and A4 to respective Text fields.
    3. 
    First seq_no field as shown
    and similarly others as shown
    Regards
    Anupam

  • Need Flash Help - configuring AIrtight Simple Viewer Pro

    I need some help configuring the Airtight Interactive simple viewer pro, which requires flash. I am a complete beginner with flash, and I am reluctant to undertake the learning curve, though I am very tech saavy.
    My ideal would be to locate someone who could do this FOR me, though resources are very limited for this project. Any suggestions of where I might connect with someone interested in doing this?
    Alternately, I could undertake it myself, with someone qualified to coach me rather thouroughly through the whole process. That could be offline, or here where others could benefit from the thread. If someone offers this, I will post the precise details of what I need. The project is medium challenging, not extremely complex, but more than very basic.
    Many Thanks.

    Hi:
    When you create the simpleviewer slideshow with iPhoto's plugin there should be a folder created on your HD that contains the items seen in the screenshot below:
    The folder was named simpleviewer because that's what I named it during the export from iPhoto. That's the same folder as I refer to as "Slideshow folder". It can be whatever you name it when exporting from iPhoto. Upload that folder to your iDisk/Web/Sites folder as shown below:
    In the iFrame code use the following URL to the index.html file inside the simpleviewer folder:
    http://web.me.com/YourMMe_AccountName/simplerviewer/index.html
    That should do it.

  • Very slow performance running Mavericks - need troubleshooting help

    Hello folks:
    I have a MBP 2011 which was upgraded to Mavericks from Mountain Lion about 6 weeks ago. Since then I have had a major performance drop - slow machine, very slow window renderings, etc. I know a number of people have been facing these issues and have been recommended to clean up 3rd party extensions/agents. I ran Etrecheck (report below) and I need some help with fixing the failed kernel extensions and launch daemons. Thanks much!
    Pavan
    Hardware Information:
      MacBook Pro (13-inch, Late 2011)
      MacBook Pro - model: MacBookPro8,1
      1 2.8 GHz Intel Core i7 CPU: 2 cores
      4 GB RAM
    Video Information:
      Intel HD Graphics 3000 - VRAM: 384 MB
    Audio Plug-ins:
      BluetoothAudioPlugIn: Version: 1.0 - SDK 10.9
      AirPlay: Version: 1.9 - SDK 10.9
      AppleAVBAudio: Version: 2.0.0 - SDK 10.9
      iSightAudio: Version: 7.7.3 - SDK 10.9
    System Software:
      OS X 10.9 (13A603) - Uptime: 6 days 4:6:6
    Disk Information:
      TOSHIBA MK7559GSXF disk0 : (750.16 GB)
      EFI (disk0s1) <not mounted>: 209.7 MB
      Hurricane (disk0s2) /: 749.3 GB (257.76 GB free)
      Recovery HD (disk0s3) <not mounted>: 650 MB
      MATSHITADVD-R   UJ-8A8 
    USB Information:
      Western Digital My Book 1148 3 TB
      EFI (disk4s1) <not mounted>: 209.7 MB
      disk4s2 (disk4s2) <not mounted>: 3 TB
      Boot OS X (disk4s3) <not mounted>: 134.2 MB
      Apple Computer, Inc. IR Receiver
      Apple Inc. FaceTime HD Camera (Built-in)
      Memorex TRAVELDRIVE 005B 16.01 GB
      EFI (disk2s1) <not mounted>: 209.7 MB
      Untitled (disk2s2) /Volumes/Untitled: 15.67 GB (15.63 GB free)
      Apple Inc. Apple Internal Keyboard / Trackpad
      Apple Inc. BRCM2070 Hub
      Apple Inc. Bluetooth USB Host Controller
    FireWire Information:
    Thunderbolt Information:
      Apple Inc. thunderbolt_bus
    Kernel Extensions:
      com.wdc.driver.USB_64HP (1.0.0 - SDK 10.6)
    Problem System Launch Daemons:
      [failed] com.apple.AOSNotificationOSX.plist
      [failed] com.apple.installd.plist
      [failed] com.apple.softwareupdated.plist
      [failed] com.apple.wdhelper.plist
    Problem System Launch Agents:
    Launch Daemons:
      [loaded] com.adobe.fpsaud.plist
      [loaded] com.adobe.versioncueCS3.plist
      [loaded] com.barebones.textwrangler.plist
      [loaded] com.cisco.anyconnect.vpnagentd.plist
      [loaded] com.google.keystone.daemon.plist
      [loaded] com.microsoft.office.licensing.helper.plist
      [loaded] com.oracle.java.Helper-Tool.plist
      [loaded] org.macosforge.xquartz.privileged_startx.plist
    Launch Agents:
      [loaded] com.cisco.anyconnect.gui.plist
      [loaded] com.google.keystone.agent.plist
      [loaded] com.oracle.java.Java-Updater.plist
      [loaded] org.macosforge.xquartz.startx.plist
    User Launch Agents:
      [failed] com.apple.CSConfigDotMacCert-[redacted]@me.com-SharedServices.Agent.plist
      [loaded] com.google.Chrome.framework.plist
    User Login Items:
      Flux
      iTunesHelper
      Google Drive
      Google Chrome
      AdobeResourceSynchronizer
    3rd Party Preference Panes:
      Flash Player
      Java
    Internet Plug-ins::
      o1dbrowserplugin: Version: 4.9.1.16010
      Default Browser: Version: 537 - SDK 10.9
      Flip4Mac WMV Plugin: Version: 2.2.0.49
      Loki: Version: 3.0
      net.juniper.DSSafariExtensions: Version: (null)
      RealPlayer Plugin: Version: Unknown
      FlashPlayer-10.6: Version: 11.9.900.170 - SDK 10.6
      DivXBrowserPlugin: Version: 1.3
      Silverlight: Version: 5.1.20513.0 - SDK 10.6
      Flash Player: Version: 11.9.900.170 - SDK 10.6
      AmazonMP3DownloaderPlugin: Version: Unknown
      googletalkbrowserplugin: Version: 4.9.1.16010
      npgtpo3dautoplugin: Version: 0.1.44.29 - SDK 10.5
      iPhotoPhotocast: Version: 6.0
      QuickTime Plugin: Version: 7.7.3
      SharePointBrowserPlugin: Version: 14.3.9 - SDK 10.6
      JavaAppletPlugin: Version: Java 7 Update 45
    User Internet Plug-ins::
      Picasa: Version: 1.0
      Google Earth Web Plug-in: Version: 7.1
    Bad Fonts:
      None
    Old applications:
      Audacity: Version: 1.3.14.0 - SDK 10.4
      /Applications/Audacity/Audacity.app
      Hugin: Version: 2011.4.0 - SDK 10.4
      /Applications/Hugin/Hugin.app
      Keynote: Version: 5.3 - SDK 10.5
      /Applications/iWork '09/Keynote.app
      Microsoft Alerts Daemon: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Alerts Daemon.app
      Microsoft AutoUpdate: Version: 2.3.6 - SDK 10.4
      /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app
      Microsoft Chart Converter: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Chart Converter.app
      Microsoft Clip Gallery: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Clip Gallery.app
      Microsoft Database Daemon: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Database Daemon.app
      Microsoft Database Utility: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Database Utility.app
      Microsoft Document Connection: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Microsoft Document Connection.app
      Microsoft Error Reporting: Version: 2.2.9 - SDK 10.4
      /Library/Application Support/Microsoft/MERP2.0/Microsoft Error Reporting.app
      Microsoft Excel: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Microsoft Excel.app
      Microsoft Graph: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Graph.app
      Microsoft Language Register: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Additional Tools/Microsoft Language Register/Microsoft Language Register.app
      Microsoft Office Reminders: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Office Reminders.app
      Microsoft Outlook: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Microsoft Outlook.app
      Microsoft PowerPoint: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Microsoft PowerPoint.app
      Microsoft Ship Asserts: Version: 1.1.4 - SDK 10.4
      /Library/Application Support/Microsoft/MERP2.0/Microsoft Ship Asserts.app
      Microsoft Upload Center: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Upload Center.app
      Microsoft Word: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Microsoft Word.app
      My Day: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/My Day.app
      Open XML for Excel: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Open XML for Excel.app
      PTBatcherGUI: Version: 2011.4.0 - SDK 10.4
      /Applications/Hugin/PTBatcherGUI.app
      Picasa: Version: 3.9.16 - SDK 10.4
      /Applications/Picasa.app
      SLLauncher: Version: 1.0 - SDK 10.5
      /Library/Application Support/Microsoft/Silverlight/OutOfBrowser/SLLauncher.app
      Solver: Version: 1.0 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Add-Ins/Solver.app
      Spotify: Version: 0.8.4.107.g4fa0003f - SDK 10.5
      /Applications/Spotify.app
      SyncServicesAgent: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/SyncServicesAgent.app
      calibrate_lens_gui: Version: 2011.4.0 - SDK 10.4
      /Applications/Hugin/calibrate_lens_gui.app
    Time Machine:
      Skip System Files: NO
      Mobile backups: ON
      Auto backup: YES
      Volumes being backed up:
      Hurricane: Disk size: 697.84 GB Disk used: 457.78 GB
      Destinations:
      Gasolina [Local] (Last used)
      Total size: 3 
      Total number of backups: 18
      Oldest backup: 2013-07-09 19:11:24 +0000
      Last backup: 2013-12-13 19:35:36 +0000
      Size of backup disk: Excellent
      Backup size 3  > (Disk size 697.84 GB X 3)
      Time Machine details may not be accurate.
      All volumes being backed up may not be listed.
    Top Processes by CPU:
          22% storeagent
          2% WindowServer
          1% backupd
          1% Google Chrome
          1% EtreCheck
    Top Processes by Memory:
      119 MB Google Chrome
      102 MB Google Chrome Helper
      82 MB mds_stores
      57 MB Finder
      33 MB WindowServer
    Virtual Memory Statistics:
      45 MB Free RAM
      792 MB Active RAM
      748 MB Inactive RAM
      1.06 GB Wired RAM
      37.63 GB Page-ins
      1.98 GB Page-outs

    Here’s your report with some comments:
    Hardware Information:
      MacBook Pro (13-inch, Late 2011)
      MacBook Pro - model: MacBookPro8,1
      1 2.8 GHz Intel Core i7 CPU: 2 cores
      4 GB RAM
    Video Information:
      Intel HD Graphics 3000 - VRAM: 384 MB
    Audio Plug-ins:
      BluetoothAudioPlugIn: Version: 1.0 - SDK 10.9
      AirPlay: Version: 1.9 - SDK 10.9
      AppleAVBAudio: Version: 2.0.0 - SDK 10.9
      iSightAudio: Version: 7.7.3 - SDK 10.9
    System Software:
      OS X 10.9 (13A603) - Uptime: 6 days 4:6:6
    Disk Information:
      TOSHIBA MK7559GSXF disk0 : (750.16 GB)
      EFI (disk0s1) <not mounted>: 209.7 MB
      Hurricane (disk0s2) /: 749.3 GB (257.76 GB free)
      Recovery HD (disk0s3) <not mounted>: 650 MB
      MATSHITADVD-R   UJ-8A8
    USB Information:
      Western Digital My Book 1148 3 TB    WD drives are one of the worst things that can happen to a mac. They have software on the drive and also in the firmware of the drive enclosure that is incompatible with Mavericks. The software that they also want you to install on your mac (to run the drive with the shitware on it that is incompatible with Mavericks) is also incompatible with Mavericks. The best thing to do with this drive is to open it and remove the hard drive and put it into a new (non-WD) enclosure. Then smash the WD enclosure into little bits with a sledgehammer and mail it back to WD.
      EFI (disk4s1) <not mounted>: 209.7 MB
      disk4s2 (disk4s2) <not mounted>: 3 TB
      Boot OS X (disk4s3) <not mounted>: 134.2 MB
      Apple Computer, Inc. IR Receiver
      Apple Inc. FaceTime HD Camera (Built-in)
      Memorex TRAVELDRIVE 005B 16.01 GB
      EFI (disk2s1) <not mounted>: 209.7 MB
      Untitled (disk2s2) /Volumes/Untitled: 15.67 GB (15.63 GB free)
      Apple Inc. Apple Internal Keyboard / Trackpad
      Apple Inc. BRCM2070 Hub
      Apple Inc. Bluetooth USB Host Controller
    FireWire Information:
    Thunderbolt Information:
      Apple Inc. thunderbolt_bus
    Kernel Extensions:
    com.wdc.driver.USB_64HP (1.0.0 - SDK 10.6)     This would be part of the shitware that you installed from WD. I would  uninstall the WD application that installs this driver. If the driver is still there after that, I'd look for the extension in /System/Library/Extensions and delete it from there. This may have damaged your kernel, though. If your performance is not improved after removing the WD app and this extension, you should probably back up your documents, erase your HD, and do a clean reinstall of Mavericks.
    Problem System Launch Daemons:
    [failed] com.apple.AOSNotificationOSX.plist    
    [failed] com.apple.installd.plist
      [failed] com.apple.softwareupdated.plist
      [failed] com.apple.wdhelper.plist    These four are all apple software. I would try repairing your hard drive: Boot into your recovery partition (restart, hold down ⌘R until you see the Apple logo), and use Disk Utility to repair your hard drive. Repair permissions too while you're there. OS X: About OS X Recovery . Then restart, reassess your mac’s performance, and rerun Etrecheck. If that doesn’t work, I’d reinstall Mavericks over your current installation. If that doesn’t work, I’d do a clean install.
    Problem System Launch Agents:
    Launch Daemons:
      [loaded] com.adobe.fpsaud.plist
      [loaded] com.adobe.versioncueCS3.plist
      [loaded] com.barebones.textwrangler.plist 
      [loaded] com.cisco.anyconnect.vpnagentd.plist
      [loaded] com.google.keystone.daemon.plist    spyware from google
      [loaded] com.microsoft.office.licensing.helper.plist
      [loaded] com.oracle.java.Helper-Tool.plist
      [loaded] org.macosforge.xquartz.privileged_startx.plist
    Launch Agents:
      [loaded] com.cisco.anyconnect.gui.plist
    [loaded] com.google.keystone.agent.plist
      [loaded] com.oracle.java.Java-Updater.plist
      [loaded] org.macosforge.xquartz.startx.plist
    User Launch Agents:
    [failed] com.apple.CSConfigDotMacCert-[redacted]@me.com-SharedServices.Agent.plist   see the suggestions above.
    [loaded] com.google.Chrome.framework.plist    This is why I prefer Safari. It doesn’t install all this extra junk.
    User Login Items:
      Flux
      iTunesHelper
    Google Drive   Last I heard Google drive was incompatible with Mavericks.
      Google Chrome
      AdobeResourceSynchronizer
    3rd Party Preference Panes:
      Flash Player
      Java
    Internet Plug-ins::   Way too many of these. If you have poor browser performance, get rid of these, and then only reinstall ones you absolutely need, and make sure they are mavericks compatible and up-to-date.
      o1dbrowserplugin: Version: 4.9.1.16010
      Default Browser: Version: 537 - SDK 10.9
      Flip4Mac WMV Plugin: Version: 2.2.0.49
      Loki: Version: 3.0
      net.juniper.DSSafariExtensions: Version: (null)
      RealPlayer Plugin: Version: Unknown
      FlashPlayer-10.6: Version: 11.9.900.170 - SDK 10.6
      DivXBrowserPlugin: Version: 1.3
      Silverlight: Version: 5.1.20513.0 - SDK 10.6
      Flash Player: Version: 11.9.900.170 - SDK 10.6
      AmazonMP3DownloaderPlugin: Version: Unknown
      googletalkbrowserplugin: Version: 4.9.1.16010
      npgtpo3dautoplugin: Version: 0.1.44.29 - SDK 10.5
      iPhotoPhotocast: Version: 6.0
      QuickTime Plugin: Version: 7.7.3
      SharePointBrowserPlugin: Version: 14.3.9 - SDK 10.6
      JavaAppletPlugin: Version: Java 7 Update 45
    User Internet Plug-ins::
      Picasa: Version: 1.0
      Google Earth Web Plug-in: Version: 7.1
    Bad Fonts:
      None
    Old applications:
      Audacity: Version: 1.3.14.0 - SDK 10.4
      /Applications/Audacity/Audacity.app
      Hugin: Version: 2011.4.0 - SDK 10.4
      /Applications/Hugin/Hugin.app
      Keynote: Version: 5.3 - SDK 10.5
      /Applications/iWork '09/Keynote.app
      Microsoft Alerts Daemon: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Alerts Daemon.app
      Microsoft AutoUpdate: Version: 2.3.6 - SDK 10.4
      /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app
      Microsoft Chart Converter: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Chart Converter.app
      Microsoft Clip Gallery: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Clip Gallery.app
      Microsoft Database Daemon: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Database Daemon.app
      Microsoft Database Utility: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Database Utility.app
      Microsoft Document Connection: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Microsoft Document Connection.app
      Microsoft Error Reporting: Version: 2.2.9 - SDK 10.4
      /Library/Application Support/Microsoft/MERP2.0/Microsoft Error Reporting.app
      Microsoft Excel: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Microsoft Excel.app
      Microsoft Graph: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Graph.app
      Microsoft Language Register: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Additional Tools/Microsoft Language Register/Microsoft Language Register.app
      Microsoft Office Reminders: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Office Reminders.app
      Microsoft Outlook: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Microsoft Outlook.app
      Microsoft PowerPoint: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Microsoft PowerPoint.app
      Microsoft Ship Asserts: Version: 1.1.4 - SDK 10.4
      /Library/Application Support/Microsoft/MERP2.0/Microsoft Ship Asserts.app
      Microsoft Upload Center: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Microsoft Upload Center.app
      Microsoft Word: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Microsoft Word.app
      My Day: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/My Day.app
      Open XML for Excel: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Open XML for Excel.app
      PTBatcherGUI: Version: 2011.4.0 - SDK 10.4
      /Applications/Hugin/PTBatcherGUI.app
      Picasa: Version: 3.9.16 - SDK 10.4
      /Applications/Picasa.app
      SLLauncher: Version: 1.0 - SDK 10.5
      /Library/Application Support/Microsoft/Silverlight/OutOfBrowser/SLLauncher.app
      Solver: Version: 1.0 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/Add-Ins/Solver.app
      Spotify: Version: 0.8.4.107.g4fa0003f - SDK 10.5
      /Applications/Spotify.app
      SyncServicesAgent: Version: 14.3.9 - SDK 10.5
      /Applications/Microsoft Office 2011/Office/SyncServicesAgent.app
      calibrate_lens_gui: Version: 2011.4.0 - SDK 10.4
      /Applications/Hugin/calibrate_lens_gui.app
    Time Machine:
      Skip System Files: NO
      Mobile backups: ON
      Auto backup: YES
      Volumes being backed up:
      Hurricane: Disk size: 697.84 GB Disk used: 457.78 GB
      Destinations:
      Gasolina [Local] (Last used)
      Total size: 3
      Total number of backups: 18
      Oldest backup: 2013-07-09 19:11:24 +0000
      Last backup: 2013-12-13 19:35:36 +0000
      Size of backup disk: Excellent
      Backup size 3  > (Disk size 697.84 GB X 3)
      Time Machine details may not be accurate.
      All volumes being backed up may not be listed.
    Top Processes by CPU:
          22% storeagent
          2% WindowServer
          1% backupd
          1% Google Chrome
          1% EtreCheck
    Top Processes by Memory:
      119 MB Google Chrome
      102 MB Google Chrome Helper
      82 MB mds_stores
      57 MB Finder
      33 MB WindowServer
    Virtual Memory Statistics:
      45 MB Free RAM
      792 MB Active RAM
      748 MB Inactive RAM
      1.06 GB Wired RAM
      37.63 GB Page-ins
      1.98 GB Page-outs  This is the highest amount of page-outs I have ever seen. I'd get rid of Chrome and Google Drive. Dropbox works fine and doesn't screw up my mac.

Maybe you are looking for

  • Need help reg sender JDBC adapter

    Hi, I am having a requirement like, i need to fetch the data from two data base tables. and after fetching the data, i need to update those two tables. For selecting the data from two tables, two select statements i need to write, how i can give two

  • JDeveloper 10g - ODBC (MS-Access) database connection

    Hi! I'm a new JDeveloper user. I can connect to an ODBC (Access) database and I can see tables in Oracle JDeveloper 9i. It's work fine. I can connect to an ODBC (Access) database but I CAN'T see tables in Oracle JDeveloper 10g(Connections Navigator-t

  • Question about dowloading quicktime files

    Anyone know how I can enable people to download the quicktime files and or aac/mps files I have on my iweb space? I have a page with a Garageband tune I did, and people can listen to it, but I want them to be able to download it to the computers. tha

  • I forgot my iCloud ID and PSW

    Hello dear Ladies and Jentlmen, Unfortunately I updated my iPhone 5s, and now it tells me to submit APPLE ID and Password. (that has to be m*****@icloud.com) All the time I used different email address and password as well. And I do not have any idea

  • Synching iPod Touch

    I have never had a problem with the speed of synching with regard to my iPod Touch however recently is has been extremely slow.  For example, synching 250 songs used to take 15 minutes or so but now it takes hours.  Why would this have happened all o