Why does this script fail with OS X Lion?

The following AppleScript has been woorking just fine ronning Snow Leopard. Under Lion only the first site is loaded and the other Safari tabs are Untitled. Does anyone know what is wrong and how do I fix it? Thanks for any help.
Hugh
---------------------------------------------------- Non-working script ---------------------------------------------------------------------
tell application "Safari"
          open location "http://www.macrumors.com/"
          tell window 1 to set current tab to make new tab with properties {URL:"http://www.macworld.com/"}
          tell window 1 to set current tab to make new tab with properties {URL:"http://www.macnn.com/"}
          tell window 1 to set current tab to make new tab with properties {URL:"http://reviews.cnet.com/macfixit/?tag=mfiredir"}
          tell window 1 to set current tab to make new tab with properties {URL:"http://www.macintouch.com/"}
          tell window 1 to set current tab to make new tab with properties {URL:"http://arstechnica.com/apple/"}
          tell window 1 to set current tab to make new tab with properties {URL:"http://www.appleinsider.com/"}
end tell

Does anyone know what is wrong and how do I fix it?
Actually, I don't know why your script fails with Mac OS X Lion. I can only suggest the following workaround, which seems to work properly:
set myURLs to {"http://www.macworld.com/", "http://www.macnn.com/", "http://reviews.cnet.com/macfixit/?tag=mfiredir", "http://www.macintouch.com/", "http://arstechnica.com/apple/", "http://www.appleinsider.com/"}
open location "http://www.macrumors.com/"
tell application "Safari"
    activate
    tell window 1 to repeat with thisURL in myURLs
        set current tab to make new tab
        my newTab(thisURL)
    end repeat
end tell
on newTab(theURL)
    tell application "System Events"
        keystroke "l" using command down
        keystroke theURL & return
    end tell
end newTab

Similar Messages

  • Why does this script behavior change with the phase of the moon ?

    Can anyone from adobe corp or non-adobe volunteers tell me where to look in their docs to find out why this script change its behavior or how to use the debugger to figure out the same. I read the guide and the whole section on debugger and break points etc well.
    try{
    this.getField('Button4').strokeColor = color.red   ;
    app.setTimeOut( "this.getField('Button4').strokeColor = color.green ;" , 500 );
    app.setTimeOut( "this.getField('Button4').strokeColor = color.blue  ;" , 1000 );
    app.setTimeOut( "this.getField('Button4').strokeColor = color.red   ;" , 1500 );
    app.setTimeOut( "this.getField('Button4').strokeColor = color.green ;" , 2000 );
    app.setTimeOut( "this.getField('Button4').strokeColor = color.blue  ;" , 2500 );
    app.setTimeOut( "this.getField('Button4').strokeColor = color.red   ;" , 3000 );
    app.setTimeOut( "this.getField('Button4').strokeColor = color.green ;" , 3500 );
    app.setTimeOut( "this.getField('Button4').strokeColor = color.blue  ;" , 4000 );
    catch(e){}
    Sometimes the above script cycle thru all the colors in proper order and other time it get stuck.
    I have linked it to a button so its part of the button javascript.
    Is there a way to craft setTimeOut calls that it becomes a reliable delay ?
    How to craft it such that the file does not change and does not have to be saved ? This is wanted in addition but not the essential issue at the moment.
    Thanks,
    Rainbow

    MAXcount=20
    // Create a simple color animation on a field called “Color” that changes every second.
    function DoIt() {
      var f = this.getField("Button4");
      var nColor = (timeout.count++ % 10 / 10);
      // Various shades of red.
      var aColor = new Array("RGB", nColor, 0, 0);
      f.fillColor = aColor;
      console.println( 'change' + ' ' + nColor + '; count=' + timeout.count );
      if (timeout.count >= MAXcount)
        app.clearInterval ( timeout );
    console.show();
    console.clear();
    console.println('Start');
    // save return value as a variable
    timeout = app.setInterval("DoIt()", 1000);
    // Add a property to our timeout object so that DoIt() can keep a count going.
    timeout.count = 0;
    console.println('End of code');
    // And observe the results. I expect your new timer events are conflicting with each other. Note that in the above code the change is performed within the called function and not as new line of code.
    I ran it but did not follow your last comment and acrobat disk icon prompts for saving the file. Can anyone remove this "latter problem" ? Can it be solved by any means ?

  • Why does this script changes modification date???

    Hello All,
    I am using this script with an Acrobutton to advise my users of the current PDF version.
    var stmDoc = Collab.documentToStream(this)
    var strDoc = util.stringFromStream(stmDoc);
    var strVer = strDoc.substr(5,3)
    app.alert({cMsg: "The PDF version is: " + strVer, nIcon: 3, nType: 0, cTitle: "PDF Version Check"});
    Problem is that when closing the document, even though not prompted, the file is saved (assumed, since the modification date changes).
    Is there anything about this script that is doing this?

    I added a "this.dirty = false;" to the end, but it does not do as I had hoped. The pdf does not prompt for a save, which is what I understand the dirty flag to be effecting. The modification date changes anyway. Am I not using the dirty flag correctly? Thanks in advance for your help.

  • Why does this script not work when run with osascript cli?

    I wrote the following to interface with geektool to display a list of todo's on my desktop (i'm sure it's been done elsewhere, but I wanted to try it myself). I had it working fine until I tried ordering the output to place the highest priority items at the top of the list. The following code works properly during development in Script Editor, but when geektool launches the command using osascript ~/Library/Scripts/todos.scpt it only displays the initial "TODOS:" without displaying the rest of the info. Searching the Applescript Release notes, I found that some versions of Applescript 1.8 had issues with null characters when using the osascript cli, however, I'm running 1.10.7 so it shouldn't be an issue (and I'm not sure how to check for null characters in Applescript even if it were). Anybody have any ideas on what's going on here?
    set output to {"TODOS:
    set highpri to {}
    set medium to {}
    set low to {}
    set nada to {}
    tell application "iCal"
    repeat with i in calendars
    repeat with j in todos of i
    if (completion date of j as string) is equal to "" then
    if priority of j as string is equal to "high priority" then
    copy summary of j & "
    " to end of highpri
    end if
    if priority of j as string is equal to "medium priority" then
    copy summary of j & "
    " to end of medium
    end if
    if priority of j as string is equal to "low priority" then
    copy summary of j & "
    " to end of low
    end if
    if priority of j as string is equal to "no priority" then
    copy summary of j & "
    " to end of nada
    end if
    end if
    end repeat
    end repeat
    end tell
    return (output & highpri & medium & low & nada) as string

    well, i'd been pulling my hair out for quite a while with this and decided it was time to ask for help, but I thought I'd give it one last shot and found a resolution almost immediately. I figured that problem had to be caused by the way applescript was concatenating the lists, so I got rid of the lists completely and it still wouldn't work. This convinced me that it must be newline related since that was the only special character left in the string. I opened up the script in vi, but the default compiled script format is not human readable. The osascript man page indicated that it would accept both compiled and text scripts, so I gave it a try, and osascript handled the raw text file wonderfully.

  • Why does this script beep at me :-(

    Writing a script that creates job folders and duplicates files, all works great, but when I save the script as an application, I get a beep after every file is copied.
    Perhaps I am doing something wrong, so I created a test script just that just copies files and the same thing happens, when I run it the files get copied, and at the end it beeps once, save it as an application, the files get copied, but I get four beeps.
    this is sample script:
    -- move file test
    tell application "Finder"
    set FromFolder to "Macintosh HD:Users:cls:Scripts Test Center:NewJob:MoveFromFiles:"
    set ToFolder to "Macintosh HD:Users:cls:Scripts Test Center:NewJob:MoveToFiles:"
    set FileName to "NewJob1.txt"
    set MvFile1 to FromFolder & FileName
    set FileName to "NewJob2.txt"
    set MvFile2 to FromFolder & FileName
    set FileName to "test1.tif"
    set MvFile3 to FromFolder & FileName
    set FileName to "test2.tif"
    set MvFile4 to FromFolder & FileName
    duplicate file MvFile1 to ToFolder
    duplicate file MvFile2 to ToFolder
    duplicate file MvFile3 to ToFolder
    duplicate file MvFile4 to ToFolder
    end tell
    as I said this is just a test, my original intent is to copy files from different locations, but this test has the same one beep per file after saving as an application.
    Can I turn off the beep, or am I doing something wrong?
    Thanks

    Hi ErstO. Welcome to Apple Discussions!
    You can hear a beep even when you duplicate a file with ⌘D in the Finder. That's normal. Try this:
    *set FromFolder to "Macintosh HD:Users:cls:Scripts Test Center:NewJob:MoveFromFiles:"*
    *set ToFolder to "Macintosh HD:Users:cls:Scripts Test Center:NewJob:MoveToFiles:"*
    *set MvFile1 to FromFolder & "NewJob1.txt"*
    *set MvFile2 to FromFolder & "NewJob2.txt"*
    *set MvFile3 to FromFolder & "test1.tif"*
    *set MvFile4 to FromFolder & "test2.tif"*
    *set volume with output muted* -- StandardAdditions.osax > Miscellaneous Commands
    *tell application "Finder"*
    *   duplicate file MvFile1 to folder ToFolder* -- the word folder is required before the path
    *   duplicate file MvFile2 to folder ToFolder*
    *   duplicate file MvFile3 to folder ToFolder*
    *   duplicate file MvFile4 to folder ToFolder*
    *end tell*
    *delay 1* -- should be enough
    *set volume without output muted*
    Hope it can help.
    (The script seems to work even without the word folder being put before the ToFolder path. However, if you open the Event Log History window after having run the script, you will see a huge difference.)
    Message was edited by: Pierre L.

  • [Unknown] Bash: Why does this script break my environment?

    I'm trying to build a script to do a couple makepkg tasks and it looks like I'm having trouble with a function breaking the environment.  The function does several commands and then breaks makepkg.  After I run the script, makepkg runs as if no options are entered:
    makepkg -g
    ==> Check: Installer is the correct size.
    ==> Extracting archive...
    ==> Copying files...
    cp: cannot overwrite non-directory `/var/abs/local/personal/worldofgoo/pkg/usr/share/games/worldofgoo/WorldOfGoo' with directory `WorldOfGoo'
    ==> ERROR: An unknown error has occurred. Exiting...
    Instead of the expected:
    makepkg -g
    ==> Retrieving Sources...
    -> Found worldofgoo.desktop in build dir
    ==> Generating checksums for source files...
    md5sums=('e49849a66aa50065d4d548653a33cc23')
    Here's the script it just started happening when I added the function.  I think it has to do with the curly brackets that awk uses.
    #!/bin/bash
    # mp - makepkg package building tasks
    # Add md5sums following source array in PKGBUILD
    md5add () {
    # Delete previous md5sum entries
    sed -i '/^md5sums/,/).*$/d' PKGBUILD
    # Add md5sums to end if PKGBUILD
    makepkg -g >> PKGBUILD
    # Move md5sums to follow source array
    awk 'BEGIN {
    checkAt = 0
    filesAt = 0
    scanning = 0
    /md5sums=\(/ {
    checkAt = NR
    scanning = 1
    /source=\(/ {
    filesAt = NR
    scanning = 1
    /)$/ {
    if (scanning) {
    if (checkAt > filesAt) {
    checkEnd = NR
    } else {
    filesEnd = NR
    scanning = 0
    lines[NR] = $0
    END {
    for (i = 1; i <= NR; ++i) {
    if (checkAt <= i && i <= checkEnd) {
    continue
    print lines[i]
    if (i == filesEnd) {
    for (j = checkAt; j <= checkEnd; ++j) {
    print lines[j]
    }' PKGBUILD > /tmp/PKGBUILD.tmp
    if [ -f /tmp/PKGBUILD.tmp ]; then
    mv /tmp/PKGBUILD.tmp PKGBUILD
    fi
    # Remove trailing blank lines
    while [ "$(tail -n 1 PKGBUILD)" == "" ]; do
    sed -i '$d' PKGBUILD
    done
    # Options
    case $1 in
    p ) if [ ! -f ./PKGBUILD ]; then
    echo "No PKGBUILD in this directory ($(pwd))"
    exit; else
    makepkg -sf
    fi
    s ) if [ ! -f ./PKGBUILD ]; then
    echo "No PKGBUILD in this directory ($(pwd))"
    exit 1; else
    echo "adding md5sums"
    md5add
    makepkg -f --source
    fi
    * ) # Display usage if full argument isn't given
    echo " ${0##*/} <option> - makepkg building tasks:"
    echo " p - build package (also installs dependencies)"
    echo " s - build source-only tarball (adds md5sums, tars for submission)"
    exit
    esac
    I have to restart to reset the environment (logout doesn't work) so I'l like to be able to fix this .  Any ideas?
    Last edited by Gen2ly (2009-10-30 15:19:17)

    Just reinstalled and not having it come up again.  Putting this in wonderland.
    Last edited by Gen2ly (2009-10-30 15:18:44)

  • Why does this script error on shutdown?

    it's the one from this package: http://aur.archlinux.org/packages.php?d … =1&ID=2885
    http://aur.archlinux.org/packages/oss2j … ck/os2jack
    Although it works good it spouts some ugly error on shutdown(although it manages to shutdown correctly)
    Now i just copied the code from some other script so i don't know what could be wrong. So please, all you bash ppl out there!
    /me makes mental note to read the rest of RUTE linux manual to 'get' this stuff more.

    Well, at a first glance, the script backgrounds the kill command and then checks the return status, which I'm pretty sure doesn't work... so it probably does it's job, but looks as if it's failing.

  • Why does this code fail in command line?

    I am using the "ListDemo" from the java swing tutorial. If I compile it on the command line
    javac ListDemo.java
    It compiles fine. Then when I run it, it says:
    C:\Development\Java\Projects\Projects>java ListDemo
    Exception occurred during event dispatching:
    java.lang.NoSuchMethodError
    at ListDemo.createAndShowGUI(ListDemo.java:196)
    at ListDemo.access$400(ListDemo.java:7)
    at ListDemo$1.run(ListDemo.java:217)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Yet when I load up the same file into Netbeans, it compiles and runs fine! Here is the file:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    /* ListDemo.java is a 1.4 application that requires no other files. */
    public class ListDemo extends JPanel
                          implements ListSelectionListener {
        private JList list;
        private DefaultListModel listModel;
        private static final String hireString = "Hire";
        private static final String fireString = "Fire";
        private JButton fireButton;
        private JTextField employeeName;
        public ListDemo() {
            super(new BorderLayout());
            listModel = new DefaultListModel();
            listModel.addElement("Alan Sommerer");
            listModel.addElement("Alison Huml");
            listModel.addElement("Kathy Walrath");
            listModel.addElement("Lisa Friendly");
            listModel.addElement("Mary Campione");
            listModel.addElement("Sharon Zakhour");
            //Create the list and put it in a scroll pane.
            list = new JList(listModel);
            list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            list.setSelectedIndex(0);
            list.addListSelectionListener(this);
            list.setVisibleRowCount(5);
            JScrollPane listScrollPane = new JScrollPane(list);
            JButton hireButton = new JButton(hireString);
            HireListener hireListener = new HireListener(hireButton);
            hireButton.setActionCommand(hireString);
            hireButton.addActionListener(hireListener);
            hireButton.setEnabled(false);
            fireButton = new JButton(fireString);
            fireButton.setActionCommand(fireString);
            fireButton.addActionListener(new FireListener());
            employeeName = new JTextField(10);
            employeeName.addActionListener(hireListener);
            employeeName.getDocument().addDocumentListener(hireListener);
            String name = listModel.getElementAt(
                                  list.getSelectedIndex()).toString();
            //Create a panel that uses BoxLayout.
            JPanel buttonPane = new JPanel();
            buttonPane.setLayout(new BoxLayout(buttonPane,
                                               BoxLayout.LINE_AXIS));
            buttonPane.add(fireButton);
            buttonPane.add(Box.createHorizontalStrut(5));
            buttonPane.add(new JSeparator(SwingConstants.VERTICAL));
            buttonPane.add(Box.createHorizontalStrut(5));
            buttonPane.add(employeeName);
            buttonPane.add(hireButton);
            buttonPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
            add(listScrollPane, BorderLayout.CENTER);
            add(buttonPane, BorderLayout.PAGE_END);
        class FireListener implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                //This method can be called only if
                //there's a valid selection
                //so go ahead and remove whatever's selected.
                int index = list.getSelectedIndex();
                listModel.remove(index);
                int size = listModel.getSize();
                if (size == 0) { //Nobody's left, disable firing.
                    fireButton.setEnabled(false);
                } else { //Select an index.
                    if (index == listModel.getSize()) {
                        //removed item in last position
                        index--;
                    list.setSelectedIndex(index);
                    list.ensureIndexIsVisible(index);
        //This listener is shared by the text field and the hire button.
        class HireListener implements ActionListener, DocumentListener {
            private boolean alreadyEnabled = false;
            private JButton button;
            public HireListener(JButton button) {
                this.button = button;
            //Required by ActionListener.
            public void actionPerformed(ActionEvent e) {
                String name = employeeName.getText();
                //User didn't type in a unique name...
                if (name.equals("") || alreadyInList(name)) {
                    Toolkit.getDefaultToolkit().beep();
                    employeeName.requestFocusInWindow();
                    employeeName.selectAll();
                    return;
                int index = list.getSelectedIndex(); //get selected index
                if (index == -1) { //no selection, so insert at beginning
                    index = 0;
                } else {           //add after the selected item
                    index++;
                listModel.insertElementAt(employeeName.getText(), index);
                //If we just wanted to add to the end, we'd do this:
                //listModel.addElement(employeeName.getText());
                //Reset the text field.
                employeeName.requestFocusInWindow();
                employeeName.setText("");
                //Select the new item and make it visible.
                list.setSelectedIndex(index);
                list.ensureIndexIsVisible(index);
            //This method tests for string equality. You could certainly
            //get more sophisticated about the algorithm.  For example,
            //you might want to ignore white space and capitalization.
            protected boolean alreadyInList(String name) {
                return listModel.contains(name);
            //Required by DocumentListener.
            public void insertUpdate(DocumentEvent e) {
                enableButton();
            //Required by DocumentListener.
            public void removeUpdate(DocumentEvent e) {
                handleEmptyTextField(e);
            //Required by DocumentListener.
            public void changedUpdate(DocumentEvent e) {
                if (!handleEmptyTextField(e)) {
                    enableButton();
            private void enableButton() {
                if (!alreadyEnabled) {
                    button.setEnabled(true);
            private boolean handleEmptyTextField(DocumentEvent e) {
                if (e.getDocument().getLength() <= 0) {
                    button.setEnabled(false);
                    alreadyEnabled = false;
                    return true;
                return false;
        //This method is required by ListSelectionListener.
        public void valueChanged(ListSelectionEvent e) {
            if (e.getValueIsAdjusting() == false) {
                if (list.getSelectedIndex() == -1) {
                //No selection, disable fire button.
                    fireButton.setEnabled(false);
                } else {
                //Selection, enable the fire button.
                    fireButton.setEnabled(true);
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event-dispatching thread.
        private static void createAndShowGUI() {
            //Make sure we have nice window decorations.
            JFrame.setDefaultLookAndFeelDecorated(true);
            //Create and set up the window.
            JFrame frame = new JFrame("ListDemo");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            //Create and set up the content pane.
            JComponent newContentPane = new ListDemo();
            newContentPane.setOpaque(true); //content panes must be opaque
            frame.setContentPane(newContentPane);
            //Display the window.
            frame.pack();
            frame.setVisible(true);
        public static void main(String[] args) {
            //Schedule a job for the event-dispatching thread:
            //creating and showing this application's GUI.
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();

    You are not running this code under JDK 1.4
    The setDefaultLookAndFeelDecorated method requires JDK 1.4 version.

  • Why does this script only work on mobile devices?

    Is there any reason this conditional statement would work on mobile devices and not in a desktop browser i.e. Chrome, Safari? I am using it in a scroll activated project to trigger a symbol to play forwards or backwards depending on where the playhead is in the symbol. Works great on an iPad but not Chrome, Safari on my desktop.
    if (sym.getSymbol("icons_sym").getPosition("back") ) {
    sym.getSymbol("icons_sym").playReverse();
    else {
       sym.getSymbol("icons_sym").play("front");
    Thanks,
    Mark

    Ivan
    Sorry, my original posting was complete rubbish - I'll try and find the right answer...
    HTH
    Regards Nigel
    Message was edited by:
    nthomas

  • In addition to my home page, every time I start Firefox a tab opens with notifacation of an updated addon. Why does this tab continue to appear even though there is no updated version of the addon?

    In addition to my home page, every time I start Firefox a tab opens with notification of an updated addon. Why does this tab continue to appear even though there is no updated version of the addon?

    See these articles for some suggestions:
    *https://support.mozilla.com/kb/Firefox+has+just+updated+tab+shows+each+time+you+start+Firefox
    *https://support.mozilla.com/kb/How+to+set+the+home+page - Firefox supports multiple home pages separated by '|' symbols
    *http://kb.mozillazine.org/Preferences_not_saved

  • After Effects CC 2014 will not upgrade?  Gets to 100% and then says application failed.  Why does this not upgrade?

    After Effects CC 2014 will not upgrade?  Gets to 100% and then says application failed.  Why does this not upgrade?

    We can't know anything. You have not provided any useful details like system information or the install logs.
    Mylenium

  • Why does this stupid Apple TV not recognize my itunes account when I put in my ID and password???  I've had nothing but problems with it.

    Why does this stupid Apple TV not recognize my itunes account??

    if you mean home sharing then
    home sharing is not set on the appletv but on the itunes program on the computer which lib one wish to share
    the home share password need not be the appleID password as homeshare is also meant to share your media with others on your LAN network whom you may not wish to know your appleID password
    so home sharing password is set seperately in ituens on your computer

  • We're sorry, we are unable to continue with your activation at this time. why does this do this? i need help

    We're sorry, we are unable to continue with your activation at this time. why does this do this? i need help please.

    Activation issues are typically the result of a device that has been hacked or jailbroken.  Is this the case?

  • When I use Siri with Voiceover on my iPHONE 4S. Voiceover will not respond to any finger jestures. Why does this happen?

    When I use Siri with Voiceover on my iPHONE 4S. Voiceover will not respond to any finger jestures. Why does this happen?                                           

    Start Firefox in [[Safe Mode]] to check if one of your add-ons is causing your problem (switch to the DEFAULT theme: Tools > Add-ons > Themes).
    See [[Troubleshooting extensions and themes]] and [[Troubleshooting plugins]]

  • Troubleshooting PostPrepare script failed with exit code 1

    i get a 'PostPrepare' script failed with exit code '1' message on one of the bundles, and i think i am missing some obvious thing
    it is a simple file bundle, to distribute a pdf printer:
    it distributes 2 files:
    ADIST.PPD to /usr/share/cups/model
    pdf-printer to /usr/lib/cups/backend
    (script based upon Cool Solutions: A CUPS PDF Printer for your SUSE Linux Enterprise Desktop
    then it should execute a pre-installation script that executes:
    Code:
    #!/bin/bash
    rccups restart
    mkdir -p /export/share/pdf
    chmod -R 777 /export
    lpadmin -p Desktop-PDF -v pdf-writer:/export/share/pdf/ -E -P /usr/share/cups/model/ADIST5.PPD -D "PDF Writer for CUPS" -L "PDF on desktop"
    manually placing the files on these locations and executing the script works fine
    on the machine i get (device set to log debug and above)
    Code:
    22 Jul 2010 09:33:00 INFO BundleManager Executing preprepare scripts for PDF printer
    22 Jul 2010 09:33:00 DEBUG Progress Is Stopped value: False
    22 Jul 2010 09:33:00 INFO WebCache Attempting to retrieve 'https://zlmserver/zenworks-pkgmgt/repo/getBundleFile/3ba56c5bc95bb2874273a7d0cae07d14/8/sled-11-i586/ADIST5.PPD' (try 1)
    22 Jul 2010 09:33:01 INFO WebCache Successfully retrieved https://zlmserver/zenworks-pkgmgt/repo/getBundleFile/3ba56c5bc95bb2874273a7d0cae07d14/8/sled-11-i586/ADIST5.PPD
    22 Jul 2010 09:33:01 DEBUG Progress Is Stopped value: False
    22 Jul 2010 09:33:01 INFO WebCache Attempting to retrieve 'https://zlmserver/zenworks-pkgmgt/repo/getBundleFile/3ba56c5bc95bb2874273a7d0cae07d14/8/sled-11-i586/pdf-writer' (try 1)
    22 Jul 2010 09:33:01 INFO WebCache Successfully retrieved https://zlmserver/zenworks-pkgmgt/repo/getBundleFile/3ba56c5bc95bb2874273a7d0cae07d14/8/sled-11-i586/pdf-writer
    22 Jul 2010 09:33:01 DEBUG Progress Is Stopped value: False
    22 Jul 2010 09:33:01 DEBUG Progress Is Stopped value: False
    22 Jul 2010 09:33:01 INFO BundleManager Executing postprepare scripts for PDF printer
    22 Jul 2010 09:33:01 DEBUG Progress Is Stopped value: False
    22 Jul 2010 09:33:01 INFO BundleManager Successfully prepared bundles
    22 Jul 2010 09:33:01 INFO BundleManager Beginning bundle transaction
    22 Jul 2010 09:33:01 INFO BundleTransaction Beginning bundle transaction: 1 installs, 0 removals.
    22 Jul 2010 09:33:01 INFO BundleTransaction Executing preinstall scripts for PDF printer
    22 Jul 2010 09:33:01 INFO SystemCatalog Saving system catalog containing 9 bundles
    22 Jul 2010 09:33:01 ERROR BundleTransaction Novell.Zenworks.Zmd.BUNDLE_INSTALL_ERROR: Novell.Zenworks.Zmd.BUNDLE_INSTALL_ERROR
    Novell.Zenworks.Zmd.Public.ZenException: 'PreInstall' script failed with exit code '1'
    22 Jul 2010 09:33:01 INFO Progress Progress.Stop Message: Bundle transaction failed: 'PreInstall' script failed with exit code '1'
    22 Jul 2010 09:33:01 DEBUG Progress Is Stopped value: False
    22 Jul 2010 09:33:01 ERROR BundleManager Transaction failed: Bundle transaction failed: 'PreInstall' script failed with exit code '1'
    22 Jul 2010 09:33:01 INFO Progress Progress.Stop Message: Parent failed/aborted
    22 Jul 2010 09:33:01 DEBUG Progress Is Stopped value: False
    22 Jul 2010 09:33:01 INFO Progress Progress.Stop Message: Parent failed/aborted
    22 Jul 2010 09:33:01 DEBUG Progress Is Stopped value: False
    22 Jul 2010 09:33:01 INFO Progress Progress.Stop Message: Parent failed/aborted
    22 Jul 2010 09:33:01 DEBUG Progress Is Stopped value: False
    22 Jul 2010 09:33:01 INFO Progress Progress.Stop Message: Parent failed/aborted
    22 Jul 2010 09:33:01 DEBUG Progress Is Stopped value: False
    22 Jul 2010 09:33:01 ERROR ActionManager Failed to execute scheduled action (install (bundles=3ba56c5bc95bb2874273a7d0cae07d14)): Bundle transaction failed: Bundle transaction failed: 'PreInstall' script failed with exit code '1'
    Novell.Zenworks.Zmd.Public.ZenException: Bundle transaction failed: Bundle transaction failed: 'PreInstall' script failed with exit code '1'
    22 Jul 2010 09:33:01 INFO BundleTransaction Bundle transaction ended.
    clients: sled11sp1 i586
    server: sles11 x64 + zlm732
    the files are not copied to their destination
    the target directories are available, writable by root (obviously) there are no files with the same name available, adding a trailing slash to the target path does not help (but other bundles have no trailing slash and run ok)
    questions:
    where are the temporary files copied to?
    where/how can i find what might be causing the preinstall error?
    should i delete previous versions of the bundle in zlm

    until you delete the previous version in zlm and do a rug ref... or is this as designed
    When you make changes to the bundle you need to apply them. That creates a new version and then you need to deploy that new version. Apply and deploy are on the same page. But I guess you know that.
    If you already did that and still had problems, it might be the zen loader that needs a little bit more time. Once you hit deploy, a zen queue entry gets created that informs the zen loader to update the bundle xml file in the file repository. That file is delivered to the managed device when it queries for bundle information. So if that bundle xml contains the old version, the client will see that.
    Problems here can be that the zen loader simply needs a few seconds longer then when you change to the device and run rug ref. Or there can be other queue entries that get processed and the bundle xml update is just in the queue and waiting. The zen loader has 5 slots for processing queue entries.
    On the zlm server you can run "zlman ql I" for in progress entries and "zlman ql N" for new state entries that ned to be processed.
    Or you can use the short script I posted (Cool Solutions: Monitor ZLM queue entries with Nagios) that shows you in one line how many and what type of queue entries currently exist. This is what I always use to get a overview about the queue status.
    Rainer

Maybe you are looking for