A problem with Threads and loops.

Hi, I have some code that needs to be constantly running, like while(true)
      //code here
}However, the code just checks to see if the user has input anything (and then if the user has, it goes to do some other stuff) so I don't need it constantly running and hogging up 98% of the CPU. So I made my class (which has the method that needs to be looped, call it ClassA) implement Runnable. Then I just added the method which needed to be looped into the public void run()
I have another class which creates an instance of the above class (call it ClassB), and the main(String[] args) is in there.
public static void main(String[] args)
          ClassA test = new ClassA();
          Thread thread = new Thread(test.getInstanceOfClassA());
          thread.start();
          while(true)
                       //I do not know what to put here
               try
                    thread.sleep(100);
               catch(InterruptedException iex)
     }However, the thread only calls run() once,(duh...) but I can't think of away to get it to run - sleep - run -sleep forever. Can someone help me?

Hi, I have some code that needs to be constantly
running, like while(true)
//code here
}However, the code just checks to see if the user has
input anything (and then if the user has, it goes to
do some other stuff) so I don't need it constantly
running and hogging up 98% of the CPU. Where does the user input come from. Are you reading from an InputStream? If so, then your loop will be blocked anyway when reading from the InputStream until data is available. During that time, the loop will not consume processor cycles.
public static void main(String[] args)
          ClassA test = new ClassA();
Thread thread = new Thread(test.getInstanceOfClassA());I have never seen this idiom. If ClassA instanceof Runnable, you simply write new Thread(test).
          thread.start();
          while(true)
//I do not know what to put
do not know what to put here
               try
                    thread.sleep(100);
               catch(InterruptedException iex)
     }However, the thread only calls run() once,(duh...)Yeah, why would you want to call it more than once given that you have an infinite loop in ClassA.run()?
Harald.
Java Text Crunching: http://www.ebi.ac.uk/Rebholz-srv/whatizit/software

Similar Messages

  • Problem with Thread and InputStream

    Hi,
    I am having a problem with threads and InputStreams. I have a class which
    extends Thread. I have created and started four instances of this class. But
    only one instance finishes its' work. When I check the state of other three
    threads their state remains Runnable.
    What I want to do is to open four InputStreams which are running in four
    threads, which reads from the same url.
    This is what I have written in my thread class's run method,
    public void run()
         URL url = new URL("http://localhost/test/myFile.exe");
    URLConnection conn = url.openConnection();
    InputStream istream = conn.getInputStream();
    System.out.println("input stream taken");
    If I close the input stream at the end of the run method, then other threads
    also works fine. But I do not want to close it becuase I have to read data
    from it later.
    The file(myFile.exe) I am trying to read is about 35 MB in size.
    When I try to read a file which is about 10 KB all the threads work well.
    Plz teach me how to solve this problem.
    I am using JDK 1.5 and Win XP home edition.
    Thanks in advance,
    Chamal.

    I dunno if we should be doing such things as this code does, but it works fine for me. All threads get completed.
    public class ThreadURL implements Runnable
        /* (non-Javadoc)
         * @see java.lang.Runnable#run()
        public void run()
            try
                URL url = new URL("http://localhost:7777/java/install/");
                URLConnection conn = url.openConnection();
                InputStream istream = conn.getInputStream();
                System.out.println("input stream taken by "+Thread.currentThread().getName());
                istream.close();
                System.out.println("input stream closed by "+Thread.currentThread().getName());
            catch (MalformedURLException e)
                System.out.println(e);
                //TODO Handle exception.
            catch (IOException e)
                System.out.println(e);
                //TODO Handle exception.
        public static void main(String[] args)
            ThreadURL u = new ThreadURL();
            Thread t = new Thread(u,"1");
            Thread t1 = new Thread(u,"2");
            Thread t2 = new Thread(u,"3");
            Thread t3 = new Thread(u,"4");
            t.start();
            t1.start();
            t2.start();
            t3.start();
    }And this is the o/p i got
    input stream taken by 2
    input stream closed by 2
    input stream taken by 4
    input stream closed by 4
    input stream taken by 3
    input stream closed by 3
    input stream taken by 1
    input stream closed by 1
    can u paste your whole code ?
    ram.

  • A problem with Threads and MMapi

    I am tring to execute a class based on Game canvas.
    The problem begin when I try to Play both a MIDI tone and to run an infinit Thread loop.
    The MIDI tone "Stammers".
    How to over come the problem?
    Thanks in advance
    Kobi
    See Code example below:
    import java.io.IOException;
    import java.io.InputStream;
    import javax.microedition.lcdui.Graphics;
    import javax.microedition.lcdui.Image;
    import javax.microedition.lcdui.game.GameCanvas;
    import javax.microedition.media.Manager;
    import javax.microedition.media.MediaException;
    import javax.microedition.media.Player;
    public class MainScreenCanvas extends GameCanvas implements Runnable {
         private MainMIDlet parent;
         private boolean mTrucking = false;
         Image imgBackgound = null;
         int imgBackgoundX = 0, imgBackgoundY = 0;
         Player player;
         public MainScreenCanvas(MainMIDlet parent)
              super(true);
              this.parent = parent;
              try
                   imgBackgound = Image.createImage("/images/area03_bkg0.png");
                   imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
                   imgBackgoundY = this.getHeight() - imgBackgound.getHeight();
              catch(Exception e)
                   System.out.println(e.getMessage());
          * starts thread
         public void start()
              mTrucking = true;
              Thread t = new Thread(this);
              t.start();
          * stops thread
         public void stop()
              mTrucking = false;
         public void play()
              try
                   InputStream is = getClass().getResourceAsStream("/sounds/scale.mid");
                   player = Manager.createPlayer(is, "audio/midi");
                   player.setLoopCount(-1);
                   player.prefetch();
                   player.start();
              catch(Exception e)
                   System.out.println(e.getMessage());
         public void run()
              Graphics g = getGraphics();
              play();
              while (true)
                   tick();
                   input();
                   render(g);
          * responsible for object movements
         private void tick()
          * response to key input
         private void input()
              int keyStates = getKeyStates();
              if ((keyStates & LEFT_PRESSED) != 0)
                   imgBackgoundX++;
                   if (imgBackgoundX > 0)
                        imgBackgoundX = 0;
              if ((keyStates & RIGHT_PRESSED) != 0)
                   imgBackgoundX--;
                   if (imgBackgoundX < this.getWidth() - imgBackgound.getWidth())
                        imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
          * Responsible for the drawing
          * @param g
         private void render(Graphics g)
              g.drawImage(imgBackgound, imgBackgoundX, imgBackgoundY, Graphics.TOP | Graphics.LEFT);
              this.flushGraphics();
    }

    You can also try to provide a greater Priority to your player thread so that it gains the CPU time when ever it needs it and don't harm the playback.
    However a loop in a Thread and that to an infinite loop is one kind of very bad programming, 'cuz the loop eats up most of your CPU time which in turn adds up more delays of the execution of other tasks (just as in your case it is the playback). By witting codes bit efficiently and planning out the architectural execution flow of the app before start writing the code helps solve these kind of issues.
    You can go through [this simple tutorial|http://oreilly.com/catalog/expjava/excerpt/index.html] about Basics of Java and Threads to know more about threads.
    Regds,
    SD
    N.B. And yes there are more articles and tutorials available but much of them targets the Java SE / EE, but if you want to read them here is [another great one straight from SUN|http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html] .
    Edited by: find_suvro@SDN on 7 Nov, 2008 12:00 PM

  • Problem with Threads and a static variable

    I have a problem with the code below. I am yet to make sure that I understand the problem. Correct me if I am wrong please.
    Code functionality:
    A timer calls SetState every second. It sets the state and sets boolean variable "changed" to true. Then notifies a main process thread to check if the state changed to send a message.
    The problem as far I understand is:
    Assume the timer Thread calls SetState twice before the main process Thread runs. As a result, "changed" is set to true twice. However, since the main process is blocked twice during the two calls to SetState, when it runs it would have the two SetState timer threads blocked on its synchronized body. It will pass the first one, send the message and set "changed" to false since it was true. Now, it will pass the second thread, but here is the problem, "changed" is already set to false. As a result, it won't send the message even though it is supposed to.
    Would you please let me know if my understanding is correct? If so, what would you propose to resolve the problem? Should I call wait some other or should I notify in a different way?
    Thanks,
    B.D.
    Code:
    private static volatile boolean bChanged = false;
    private static Thread objMainProcess;
       protected static void Init(){
            objMainProcess = new Thread() {
                public void run() {
                    while( objMainProcess == Thread.currentThread() ) {
                       GetState();
            objMainProcess.setDaemon( true );
            objMainProcess.start();
        public static void initStatusTimer(){
            if(objTimer == null)
                 objTimer = new javax.swing.Timer( 1000, new java.awt.event.ActionListener(){
                    public void actionPerformed( java.awt.event.ActionEvent evt){
                              SetState();
        private static void SetState(){
            if( objMainProcess == null ) return;
            synchronized( objMainProcess ) {
                bChanged = true;
                try{
                    objMainProcess.notify();
                }catch( IllegalMonitorStateException e ) {}
        private static boolean GetState() {
            if( objMainProcess == null ) return false;
            synchronized( objMainProcess ) {
                if( bChanged) {
                    SendMessage();
                    bChanged = false;
                    return true;
                try {
                    objMainProcess.wait();
                }catch( InterruptedException e ) {}
                return false;
        }

    Thanks DrClap for your reply. Everything you said is right. It is not easy to make them alternate since SetState() could be called from different places where the state could be anything else but a status message. Like a GREETING message for example. It is a handshaking message but not a status message.
    Again as you said, There is a reason I can't call sendMessage() inside setState().
    The only way I was able to do it is by having a counter of the number of notifies that have been called. Every time notify() is called a counter is incremented. Now instead of just checking if "changed" flag is true, I also check if notify counter is greater than zero. If both true, I send the message. If "changed" flag is false, I check again if the notify counter is greater than zero, I send the message. This way it works, but it is kind of a patch than a good design fix. I am yet to find a good solution.
    Thanks,
    B.D.

  • Problem with threads and ProgressMonitor

    Dear Friends:
    I have a little problem with a thread and a ProgressMonitor. I have a long time process that runs in a thread (the thread is in an separate class). The thread has a ProgressMonitor that works fine and shows the tasks progress.
    But I need deactivate the main class(the main class is the user interface) until the thread ends.
    I use something like this:
    LongTask myTask=new LongTask();
    myTask.start();
    myTask.join();
    Now, the main class waits for the task to end, but the progress monitor don`t works fine: it shows only the dialog but not the progress bar.
    What's wrong?

    Is the dialog a modal dialog? This can block other UI updates.
    In general, you should make sure that it isn't modal, and that your workThread has a fairly low priority so that the UI can do its updating

  • Problem with threads and/or memory

    I'm developing an application where there are 3 threads. One of them sends a request to the other, and if the 2nd can't answer it, it sends it to the 3rd (similar to CPU -> CACHE -> MEMORY). When i run the program with 1000-10.000 requests, no problem occurs. When i run it with 300.000-1.000.000 requests, it sometimes hangs. Is this a problem with the garbage collector, or should it be related to the threads mecanism.
    (note: eache thread is in execution using a finite state machine)

    i had been running the program inside Netbeans.
    Running the jar using the command line outside
    Netbeans i have no more problems... Does Netbeans use
    it's own JVM?Depends how you set it up, but look under the options. There are settings for the compiler and jvm that it uses.

  • Having a problem with threads and using locks

    I was hoping someone could give me some hits on getting my code to run properly. The problem I am having is I think my locks and unlocks are not working properly. Plus, for some reason I always get the same output, which is:
    Withdrawal Threads         Deposit Threads            Balance
    Thread 2 attempts $29 Withdrawal - Blocked - Insufficient Funds
    Thread 4 attempts $45 Withdrawal - Blocked - Insufficient Funds
    Thread 6 attempts $34 Withdrawal - Blocked - Insufficient Funds
    Thread 7 attempts $40 Withdrawal - Blocked - Insufficient Funds
                                    Thread 1 deposits $187          $187
                                    Thread 3 deposits $169          $356
                                    Thread 5 deposits $61           $417
    Press any key to continue...If someone can see the error I made and doesn't mind explaining it to me, so I can learn from it, I would appreciate that very much.
    /************Assign2_Main.java************/
    import java.util.concurrent.*;
    public class Assign2_Main
    {//start Assign2_Main
        public static void main(String[] args)
        {//start main
               // create ExecutorService to manage threads
               ExecutorService threadExecutor = Executors.newCachedThreadPool();
            Account account = new SynchronizedThreads();
            Deposit deposit1 = new Deposit(account, "Thread 1");
            Deposit deposit2 = new Deposit(account, "Thread 3");
            Deposit deposit3 = new Deposit(account, "Thread 5");
            Withdrawal withdrawal1 = new Withdrawal(account, "Thread 2");
            Withdrawal withdrawal2 = new Withdrawal(account, "Thread 4");
            Withdrawal withdrawal3 = new Withdrawal(account, "Thread 6");
            Withdrawal withdrawal4 = new Withdrawal(account, "Thread 7");
            System.out.println("Withdrawal Threads\t\tDeposit Threads\t\t\tBalance");
            System.out.println("------------------\t\t---------------\t\t\t-------\n");
            try
                threadExecutor.execute(withdrawal1);       
                threadExecutor.execute(deposit1);     
                threadExecutor.execute(withdrawal2);  
                threadExecutor.execute(deposit2);    
                threadExecutor.execute(withdrawal3);
                threadExecutor.execute(deposit3);       
                threadExecutor.execute(withdrawal4);
            catch ( Exception e )
                 e.printStackTrace();
                //shutdown worker threads
               threadExecutor.shutdown();
        }//end main
    }//end Assign2_Main/******************Withdrawal.java****************************/
    public class Withdrawal implements Runnable
    {//start  class Withdrawal
          *constructor
        public Withdrawal(Account money, String n)
             account = money;
             name = n;
        public void run()
        {//start ruin
             int newNum = 0;
                newNum = account.getBalance(name); 
               Thread.yield();
        }//end run
        private Account account;
        private String name;
    }//end  class Withdrawal/*******************Deposit.java***************/
    import java.util.Random;
    public class Deposit implements Runnable
    {//start class Deposit
          *constructor
        public Deposit(Account money, String n)
             account = money;
             name = n;
        public void run()
        {//start run
                try
                     Thread.sleep(100);
                   account.setBalance(random.nextInt(200), name);
                }// end try
                catch (InterruptedException e)
                  e.printStackTrace();
       }//end run
       private Account account;
       private Random random = new Random();
       private String name;
    }//end class Deposit/********************Account.java*****************/
    *Account interface specifies methods called by Producer and Consumer.
    public interface Account
         //place sum into Account
         public void setBalance(int sum, String name);
         //return  value of Account
            public int getBalance(String name);         
    } /**************SynchronizedThreads.java****************/
    import java.util.concurrent.locks.*;
    import java.util.Random;
    public class SynchronizedThreads implements Account
    {//start SynchronizedThreads
          *place money into buffer
        public void setBalance(int amount, String name)
        {//start setBalance
             // lock object
             myLock.lock();           
            sum += amount;
            System.out.println("\t\t\t\t" + name + " deposits $" + amount +"\t\t$"+ sum+"\n");       
               //threads are singnaled to wakeup
            MakeWD.signalAll();
              // unlock object                                                
            myLock.unlock();
           }//end setBalance
            *gets the balance from buffer
           public int getBalance(String name)
        {//start getBalance
             int NewSum = random.nextInt(50);
             //lock object
            myLock.lock();
            try
                 if(sum > NewSum)
                     //takes NewSum away from the account
                     sum -= NewSum;
                        System.out.println(name + " withdraws $" + NewSum +"\t\t\t\t\t\t$"+ sum+"\n");
                else
                     System.out.println(name +  " attempts $" + NewSum + " Withdrawal - Blocked - Insufficient Funds\n");                 
                     //not enough funds so thread waits
                        MakeWD.await();         
                //threads are singnaled to wakeup
                MakeD.signalAll();     
                }//end try
            catch (InterruptedException e)
                   e.printStackTrace();
            finally
                 //unlock object
                 myLock.unlock();
            return NewSum;     
         }//end getBalance
         private Random random = new Random();  
         private Lock myLock = new ReentrantLock();
         private Condition MakeD = myLock.newCondition();
         private Condition MakeWD = myLock.newCondition();
         private int sum = 0;
    }//end SynchronizedThreads

    You can also try to provide a greater Priority to your player thread so that it gains the CPU time when ever it needs it and don't harm the playback.
    However a loop in a Thread and that to an infinite loop is one kind of very bad programming, 'cuz the loop eats up most of your CPU time which in turn adds up more delays of the execution of other tasks (just as in your case it is the playback). By witting codes bit efficiently and planning out the architectural execution flow of the app before start writing the code helps solve these kind of issues.
    You can go through [this simple tutorial|http://oreilly.com/catalog/expjava/excerpt/index.html] about Basics of Java and Threads to know more about threads.
    Regds,
    SD
    N.B. And yes there are more articles and tutorials available but much of them targets the Java SE / EE, but if you want to read them here is [another great one straight from SUN|http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html] .
    Edited by: find_suvro@SDN on 7 Nov, 2008 12:00 PM

  • Problem with threads and camera.

    Hi everybody!
    I've a problem with taking snapshot.
    I would like to display a loading screen after it take snapshot ( sometimes i
    have to wait few seconds after i took snapshot. Propably photo is being taken in time where i have to wait).
    I was trying to use threads but i didn't succeed.
    I made this code:
    display.setCurrent(perform);               
            new Thread(new Runnable(){
                public void run() {               
                    while((!performing.isShown()) && (backgroundCamera.isShown())){
                        Thread.yield();
                    notifyAll();
            }).start();
            new Thread(new Runnable(){
                public void run() {
                    try {
                        this.wait();                   
                    } catch(Exception e) {
                        exceptionHandler(e);
                    photo = camera.snapshot();                               
                    display.setCurrent(displayPhoto);
            }).start();This code is sometimes showing performing screen but sometimes no.
    I don't know why. In my opinion performing.isShown() method isn't working correctly.
    Does anyone have some idea how to use threads here?

    Hi,
    I've finally managed to work this fine.
    The code:
           Object o = new Object();
           display.setCurrent(perform);               
            new Thread(new Runnable(){
                public void run() {               
                    while(!performing.isShown()){
                        Thread.yield();
                   synchronized(o) {
                      o.notify();
            }).start();
            new Thread(new Runnable(){
                public void run() {
                    try {
                        synchronized(o) {
                           o.wait(1);
                    } catch(Exception e) {
                        exceptionHandler(e);
                    photo = camera.snapshot();                               
                    display.setCurrent(displayPhoto);
            }).start();

  • Problem with Threads and "plase wait..."-Window

    Hi everyone,
    I have a problem that I'm not able to solve in any way... I have a time-consuming task (a file decryption) which I execute in a separate thread; I've used the SwingWorker class, like suggested by sun-tutorial, and it works right. The problem is that I have to wait that the decryption have finished before continuing with program-execution. Therefore I would like to display a "please wait"-window while the task runs. I've tryed all the possible ways I know but the problem is always the same: the waitWindow is displayed empty, the bounds are painted but the contents no; it's only painted when the decrypt-task has finished. Please help me, I have no more resources....
    decrypt-file code:
    public class DecryptFile {
      private String cryptedFileNameAndPath;
      private ByteArrayInputStream resultStream = null;
      // need for progress
      private int lengthOfTask;
      private int current = -1;
      private String statMessage;
      public DecryptFile(String encZipFileNameAndPath) {
        cryptedFileNameAndPath = encZipFileNameAndPath;
        //Compute length of task...
        // 0 for indeterminate
        lengthOfTask = 0;
      public ByteArrayInputStream getDecryptedInputStream() {
        return this.resultStream;
       * Called from ProgressBarDemo to start the task.
      public void go() {
        current = -1;
        final SwingWorker worker = new SwingWorker() {
          public Object construct() {
            return new ActualTask();
        worker.start();
       * Called from ProgressBarDemo to find out how much work needs
       * to be done.
      public int getLengthOfTask() {
        return lengthOfTask;
       * Called from ProgressBarDemo to find out how much has been done.
      public int getCurrent() {
        return current;
      public void stop() {
        current = lengthOfTask;
       * Called from ProgressBarDemo to find out if the task has completed.
      public boolean done() {
        if (current >= lengthOfTask)
          return true;
        else
          return false;
      public String getMessage() {
        return statMessage;
       * The actual long running task.  This runs in a SwingWorker thread.
      class ActualTask {
        ActualTask () {
          current = -1;
          statMessage = "";
          resultStream = AIUtil.getInputStreamFromEncZip(cryptedFileNameAndPath); //here the decryption happens
          current = 0;
          statMessage = "";
      }The code that calls decryption and displays waitWindow
          final WaitSplash wS = new WaitSplash("Please wait...");
          final DecryptFile cryptedTemplate = new DecryptFile (this.templateFile);
          cryptedTemplate.go();
          while (! cryptedTemplate.done()) {
            try {
              wait();
            } catch (Exception e) { }
          this.templateInputStream = cryptedTemplate.getDecryptedInputStream();
          wS.close();Thanks, thanks, thanks in advance!
    Edoardo

    Maybe you can try setting the priority of the long-running thread to be lower? so that the UI will be more responsive...

  • Problem with threads and graphics

    I have a thread that chooses paths for a Travelling salesman problem, it then calls a TSPdraw class and passes it the path, which the class then draws. the problem is when i have two threads it creates two windows but only draws a path in one of them. any ideas where i`m going wrong

    Are you using swing components? Swing isn't threadsafe. If you have multiple threads that want to update your UI you need to use the SwingUtilities.invokeLater(...)or invokeAndWait(...). There is a page in the swing tutorial about this at: http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html

  • Problem with threads and simulation: please help

    please help me figure this out..
    i have something like this:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class DrawShapes extends JApplet{
         private JButton choices[];
         private String names[]={"line", "square", "oval"};
         private JPanel buttonPanel;
         private DrawPanel drawingArea;
         private int width=300, height=200;
         public void init(){
              drawingArea=new DrawPanel(width, height);
              choices=new JButton[names.length];
              buttonPanel=new JPanel();
              buttonPanel.setLayout(new GridLayout(1, choices.length));
              ButtonHandler handler=new ButtonHandler();
              for(int i=0; i<choices.length; i++){
                   choices=new JButton(names[i]);
                   buttonPanel.add(choices[i]);
                   choices[i].addActionListener(handler);
              Container c=getContentPane();
              c.add(buttonPanel, BorderLayout.NORTH);
              c.add(drawingArea, BorderLayout.CENTER);
         }//end init
         public void setWidth(int w){
              width=(w>=0 ? w : 300);
         public void setHeight(int h){
              height=(h>=0 ? h : 200);
         /*public static void main(String args[]){
              int width, height;
              if(args.length!=2){
                   height=200; width=300;
              else{
                        width=Integer.parseInt(args[0]);
                        height=Integer.parseInt(args[1]);
              JFrame appWindow=new JFrame("An applet running as an application");
              appWindow.addWindowListener(
                   new WindowAdapter(){
                        public void windowClosing(WindowEvent e){
                             System.exit(0);
              DrawShapes appObj=new DrawShapes();
              appObj.setWidth(width);
              appObj.setHeight(height);
              appObj.init();          
              appObj.start();
              appWindow.getContentPane().add(appObj);
              appWindow.setSize(width, height);
              appWindow.show();
         }//end main*/
         private class ButtonHandler implements ActionListener{
              public void actionPerformed(ActionEvent e){
                   for(int i=0; i<choices.length; i++){
                        if(e.getSource()==choices[i]){
                             drawingArea.setCurrentChoice(i);
                             break;
    }//end class DrawShapes
    class DrawPanel extends JPanel{
         private int currentChoice=-1;
         private int width=100, height=100;
         public DrawPanel(int w, int h){
              width=(w>=0 ? w : 100);
              height=(h>=0 ? h : 100);
         public void paintComponent(Graphics g){
              super.paintComponent(g);
              switch(currentChoice){
                   case 0:     g.drawLine(randomX(), randomY(), randomX(), randomY());
                             break;
                   case 1: g.drawRect(randomX(), randomY(), randomX(), randomY());
                             break;
                   case 2: g.drawOval(randomX(), randomY(), randomX(), randomY());
                             break;
         public void setCurrentChoice(int c){
              currentChoice=c;
              repaint();          
         private int randomX(){
              return (int) (Math.random()*width);
         private int randomY(){
              return (int) (Math.random()*height);
    }//end class drawPanel
    That one's from a book. I used that code to start with my applet. Mine calls different merthod from the switch cases. Say I have:
    case 0: drawStart(g); break;
    public void drawStart(Graphics g){
      /* something here */
    drawMain(g);
    public void drawMain(graphics g){
    g.drawString("test", x, y);
    //here's where i'm trying to pause
    //i've tried placing Thread.sleep between these lines
    g.drawLine(x, y, a, b);
    //Thread.sleep here
    g.drawRect(x, y, 50, 70);
    }I also need to put delays between method calls but I need to synchronize them. Am I doing it all wrong? The application pauses or sleeps but afterwards, it still drew everything all at once. Thanks a lot!

    It is. Sorry about that. Just answer any if you want to. I'd appreciate your help. Sorry again if it caused you anything or whatever. .n_n.

  • Problem with JFrame and busy/wait Cursor

    Hi -- I'm trying to set a JFrame's cursor to be the busy cursor,
    for the duration of some operation (usually just a few seconds).
    I can get it to work in some situations, but not others.
    Timing does seem to be an issue.
    There are thousands of posts on the BugParade, but
    in general Sun indicates this is not a bug. I just need
    a work-around.
    I've written a test program below to demonstrate the problem.
    I have the problem on Solaris, running with both J2SE 1.3 and 1.4.
    I have not tested on Windows yet.
    When you run the following code, three JFrames will be opened,
    each with the same 5 buttons. The first "F1" listens to its own
    buttons, and works fine. The other two (F2 and F3) listen
    to each other's buttons.
    The "BUSY" button simply sets the cursor on its listener
    to the busy cursor. The "DONE" button sets it to the
    default cursor. These work fine.
    The "SLEEP" button sets the cursor, sleeps for 3 seconds,
    and sets it back. This does not work.
    The "INVOKE LATER" button does the same thing,
    except is uses invokeLater to sleep and set the
    cursor back. This also does not work.
    The "DELAY" button sleeps for 3 seconds (giving you
    time to move the mouse into the other (listerner's)
    window, and then it behaves just like the "SLEEP"
    button. This works.
    Any ideas would be appreciated, thanks.
    -J
    import java.awt.BorderLayout;
    import java.awt.Cursor;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    public class BusyFrameTest implements ActionListener
    private static Cursor busy = Cursor.getPredefinedCursor (Cursor.WAIT_CURSOR);
    private static Cursor done = Cursor.getDefaultCursor();
    JFrame frame;
    JButton[] buttons;
    public BusyFrameTest (String title)
    frame = new JFrame (title);
    buttons = new JButton[5];
    buttons[0] = new JButton ("BUSY");
    buttons[1] = new JButton ("DONE");
    buttons[2] = new JButton ("SLEEP");
    buttons[3] = new JButton ("INVOKE LATER");
    buttons[4] = new JButton ("DELAY");
    JPanel buttonPanel = new JPanel();
    for (int i = 0; i < buttons.length; i++)
    buttonPanel.add (buttons);
    frame.getContentPane().add (buttonPanel);
    frame.pack();
    frame.setVisible (true);
    public void addListeners (ActionListener listener)
    for (int i = 0; i < buttons.length; i++)
    buttons[i].addActionListener (listener);
    public void actionPerformed (ActionEvent e)
    System.out.print (frame.getTitle() + ": " + e.getActionCommand());
    if (e.getActionCommand().equals ("BUSY"))
    frame.setCursor (busy);
    else if (e.getActionCommand().equals ("DONE"))
    frame.setCursor (done);
    else if (e.getActionCommand().equals ("SLEEP"))
    frame.setCursor (busy);
    try { Thread.sleep (3000); } catch (Exception ex) { }
    frame.setCursor (done);
    System.out.print (" finished");
    else if (e.getActionCommand().equals ("INVOKE LATER"))
    frame.setCursor (busy);
    SwingUtilities.invokeLater (thread);
    else if (e.getActionCommand().equals ("DELAY"))
    try { Thread.sleep (3000); } catch (Exception ex) { }
    frame.setCursor (busy);
    try { Thread.sleep (3000); } catch (Exception ex) { }
    frame.setCursor (done);
    System.out.print (" finished");
    System.out.println();
    Runnable thread = new Runnable()
    public void run()
    try { Thread.sleep (3000); } catch (Exception ex) { }
    frame.setCursor (done);
    System.out.println (" finished");
    public static void main (String[] args)
    BusyFrameTest f1 = new BusyFrameTest ("F1");
    f1.addListeners (f1);
    BusyFrameTest f2 = new BusyFrameTest ("F2");
    BusyFrameTest f3 = new BusyFrameTest ("F3");
    f2.addListeners (f3); // 2 listens to 3
    f3.addListeners (f2); // 3 listens to 2

    I've had the same problems with cursors and repaints in a swing application, and I was thinking of if I could use invokeLater, but I never got that far with it.
    I still believe you would need a thread for the time consuming task, and that invokeLater is something you only need to use in a thread different from the event thread.

  • Problem with writing and reading using serialization

    I am having a problem with writing and reading an object that has another object in it. The purpose of the class is to write a order that has multiple items in it. And there will be several orders. This is for an IB project, where one of the requirements is to utilize a hierarchical composite data structure. That is, it is "one that contains more than one element and at least one of the elements is a composite data structure. Examples are, an array or linked list of records, a record that has one field that is another record, or an array". The code is shown below:
    The error produced is
    java.lang.NullPointerException
         at SamsonRubberIndustries.CustomerOrderDetails.createCustOrdDetailsScreen(CustomerOrderDetails.java:150)
         at SamsonRubberIndustries.CustomerOrderDetails$1.run(CustomerOrderDetails.java:78)
         at java.awt.event.InvocationEvent.dispatch(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    public class CustOrdObject implements Serializable {
         public int CustID;
         public int CustOrderID;
         public Object OrderDate;
         public InnerCustOrdObject[] innerCustOrdObj;
         public float GrandTotal;
         public int MaxItems;
         public CustOrdObject() {}
         public CustOrdObject(InnerCustOrdObject[] innerCustOrdObj,
    int CustID, int CustOrderID, Object OrderDate,
    float GrandTotal, int innerarrlength, int innerarrpos, int MaxItems) {
              this.CustID = CustID;
              this.CustOrderID = CustOrderID;
              this.OrderDate = OrderDate;
              this.GrandTotal = GrandTotal;          
              this.MaxItems = MaxItems;
              this.innerCustOrdObj = new InnerCustOrdObject[MaxItems];
         public InnerCustOrdObject[] getInnerCustOrdObj() {
              return innerCustOrdObj;
         public void setInnerCustOrdObj(InnerCustOrdObject[] innerCustOrdObj) {
              this.innerCustOrdObj = innerCustOrdObj;
         public int getCustID() {
              return CustID;
         public void setCustID(int custID) {
              CustID = custID;
         public int getCustOrderID() {
              return CustOrderID;
         public void setCustOrderID(int custOrderID) {
              CustOrderID = custOrderID;
         public Object getOrderDate() {
              return OrderDate;
         public void setOrderDate(Object orderDate) {
              OrderDate = orderDate;
         public void setGrandTotal(float grandTotal) {
              GrandTotal = grandTotal;
         public float getGrandTotal() {
              return GrandTotal;
         public int getMaxItems() {
              return MaxItems;
         public void setMaxItems(int maxItems) {
              MaxItems = maxItems;
    public class InnerCustOrdObject implements Serializable{
         public int ItemNumber;
         public float UnitPrice;
         public int QuantityRequired;
         public float TotalPrice;
         public InnerCustOrdObject() {}
         public InnerCustOrdObject(int ItemNumber, float
    UnitPrice, int QuantityRequired, float TotalPrice){
              this.ItemNumber = ItemNumber;
              this.UnitPrice = UnitPrice;
              this.QuantityRequired = QuantityRequired;
              this.TotalPrice = TotalPrice;
         public int getItemNumber() {
              return ItemNumber;
         public void setItemNumber(int itemNumber) {
              ItemNumber = itemNumber;
         public int getQuantityRequired() {
              return QuantityRequired;
         public void setQuantityRequired(int quantityRequired) {
              QuantityRequired = quantityRequired;
         public float getTotalPrice() {
              return TotalPrice;
         public void setTotalPrice(float totalPrice) {
              TotalPrice = totalPrice;
         public float getUnitPrice() {
              return UnitPrice;
         public void setUnitPrice(float unitPrice) {
              UnitPrice = unitPrice;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import javax.swing.*;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.DefaultTableModel;
    public class CustomerOrderDetails extends CommonFeatures{
         //TODO
         private static int MAX_ORDERS = 200;
         private static int MAX_ORDERITEMS = 100;
         private static int MaxRecord;
         private static int CurrentRecord = 1;
         private static int currentItem;
         private static int MaxItems;
         private static boolean FileExists, recFileExists;
         private static CustOrdObject[] orderDetails = new CustOrdObject[MAX_ORDERS];
         private static InnerCustOrdObject[] innerCustOrdObj = new InnerCustOrdObject[MAX_ORDERITEMS];     
         private static File OrderDetailsFile = new File("CustOrdDetails.dat");
         private static File OrdRecordNumStore = new File("OrdRecordNumStore.txt");
         private static PrintWriter writeFile;
         private static BufferedReader readFile;
         private static ObjectOutputStream objOut;
         private static ObjectInputStream objIn;
         //Set format for date
         SimpleDateFormat simpleDF = new SimpleDateFormat("dd MM yyyy");
         //--<BEGINNING>--Declaring Interface Variables------------------------------------------//
         private JPanel innertoppanel, innercenterpanel, innerbottompanel, innerrightpanel, innerleftpanel;
         private JLabel CustIDLbl, CustOrderIDLbl, OrderedDateLbl, GrandTotLbl, ItemNumberLbl,UnitPriceLbl, QuantityReqLbl, TotPriceLbl;
         private JTextField CustIDTxt, CustOrderIDTxt, OrderedDateTxt, GrandTotTxt, ItemNumberTxt, UnitPriceTxt, QuantityReqTxt, TotPriceTxt;
         private JButton addrecordbtn, savebtn, externalprevbtn, externalnextbtn, internalprevbtn, internalnextbtn, gotorecordbtn, additemreqbtn;
         //--<END>--Declaring Interface Variables------------------------------------------------//
         public static void main(String[] args) {
              final CustomerOrderDetails COD = new CustomerOrderDetails();
              java.awt.EventQueue.invokeLater(new Runnable() {
                   public void run() {
                        try {
                             UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                             COD.createCustOrdDetailsScreen();
                        } catch (Exception eb) {
                             eb.printStackTrace();
         //--<BEGINNING>--Creating CustomerOrderDetails Screen---------------------------------------//
         public JFrame createCustOrdDetailsScreen() {
              createDefaultFrame();
              mainframe.setSize(800,500);
              createContainerPanel();
              containerpanel.add(createCustOrdDetailsTitle(), BorderLayout.NORTH);
              containerpanel.add(createCustOrdDetailsMainPanel(), BorderLayout.CENTER);
              //containerpanel.add(createCustOrdDetailsLeftNavButtons(), BorderLayout.WEST);
              //containerpanel.add(createCustOrdDetailsRightNavButtons(), BorderLayout.EAST);
              containerpanel.add(createCustOrdDetailsButtons(), BorderLayout.SOUTH);
              mainframe.setContentPane(containerpanel);
              mainframe.setLocationRelativeTo(null);
              mainframe.setVisible(true);
              //--<BEGINNING>--Checks to see whether CRecordNumberStore file exists-------------------------------//
              if (OrdRecordNumStore.exists() == true) {
                   recFileExists = true;
              }else {
                   recFileExists = false;
              if (recFileExists == true) {
                   MaxRecord = readRecordNumber();
                   CurrentRecord = MaxRecord;
                   //readOrder();
                   //readInnerOrderRecord(CurrentRecord);
                   System.out.println("Current Record " +CurrentRecord);
                   System.out.println("Max Record " +MaxRecord);
              }else{
                   MaxRecord = 1;
                   writeRecordNumber(MaxRecord);
                   CustOrderIDTxt.setText(""+MaxRecord);
                   System.out.println("Current Record " +CurrentRecord);
                   System.out.println("Max Record " +MaxRecord);
              //--<END>--Checks to see whether CRecordNumberStore file exists--------------------------------------//
              if(readOrder() != null){
                   orderDetails = (CustOrdObject[]) readOrder();
                 innerCustOrdObj = orderDetails[CurrentRecord].getInnerCustOrdObj();
                   MaxItems = orderDetails[CurrentRecord].getMaxItems();
                   if(CurrentRecord > 1 && CurrentRecord < MaxRecord){
                        externalnextbtn.setEnabled(true);
                        externalprevbtn.setEnabled(true);
                   if(CurrentRecord >= MaxRecord){
                        externalnextbtn.setEnabled(false);
                   getFieldText(CurrentRecord-1);
              }else{
                   orderDetails[CurrentRecord] = new CustOrdObject();
                   currentItem = 1;
              return mainframe;
         //--<END>--Creating CustomerOrderDetails Screen---------------------------------------------//
         public JPanel createCustOrdDetailsTitle(){
              createTitlePanel();
              titlepanel.setBackground(TxtfontColor);
              label.setText("- Customer Order Details -");
              labelpanel.setBackground(TxtfontColor);
              label.setForeground(Color.white);
              createbuttonpanel();
              buttonpanel.setBackground(TxtfontColor) ;
              buttonpanel.add(createReturnToMainMenuButton());
              titlepanel.add(labelpanel, BorderLayout.WEST);
              titlepanel.add(buttonpanel, BorderLayout.EAST);
              return titlepanel;
         public JPanel createCustOrdDetailsMainPanel(){
              createmainpanel();
              mainpanel.setBackground(TxtfontColor);
              mainpanel.setLayout(new BorderLayout());          
              mainpanel.setBorder(BorderFactory.createTitledBorder(""));
              mainpanel.add(createInnerTopPanel(), BorderLayout.NORTH);
              mainpanel.add(createInnerCenterPanel(), BorderLayout.CENTER);
              mainpanel.add(createInnerBottomPanel(), BorderLayout.SOUTH);
              mainpanel.add(createInnerRightPanel(), BorderLayout.EAST);
              mainpanel.add(createInnerLeftPanel(), BorderLayout.WEST);
              return mainpanel;
         public JPanel createInnerTopPanel(){
              innertoppanel = new JPanel(new GridBagLayout());
              innertoppanel.setBackground(TxtfontColor);
              GridBagConstraints GBC = new GridBagConstraints();
              GBC.fill = GridBagConstraints.HORIZONTAL;
              //Setting Font Type and Size
              Font font = new Font("Arial", Font.BOLD, 11);
              CustIDLbl = new JLabel("Customer ID");
              CustIDLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              CustIDLbl.setFont(font);
              CustIDLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 1;
              innertoppanel.add(CustIDLbl, GBC);     
              CustIDTxt = new JTextField(20);
              CustIDTxt.setEditable(true);
              GBC.gridx = 2;
              GBC.gridy = 1;
              innertoppanel.add(CustIDTxt, GBC);
              GBC.gridx = 3;
              GBC.gridy = 1;
              innertoppanel.add(Box.createHorizontalStrut(220), GBC);
              OrderedDateLbl = new JLabel("Order Date");
              OrderedDateLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              OrderedDateLbl.setFont(font);
              OrderedDateLbl.setForeground(LblfontColor);
              GBC.gridx = 4;
              GBC.gridy = 1;
              innertoppanel.add(OrderedDateLbl, GBC);     
              //Get today's date
              Date todaydate = new Date();
              OrderedDateTxt = new JTextField(simpleDF.format(todaydate), 20);
              OrderedDateTxt.setHorizontalAlignment(JTextField.CENTER);
              OrderedDateTxt.setEditable(false);
              GBC.gridx = 5;
              GBC.gridy = 1;
              innertoppanel.add(OrderedDateTxt, GBC);
              CustOrderIDLbl = new JLabel("Customer Order ID");
              CustOrderIDLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              CustOrderIDLbl.setFont(font);
              CustOrderIDLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 2;
              innertoppanel.add(CustOrderIDLbl, GBC);
              CustOrderIDTxt = new JTextField(20);
              CustOrderIDTxt.setEditable(false);
              GBC.gridx = 2;
              GBC.gridy = 2;
              innertoppanel.add(CustOrderIDTxt, GBC);
              return innertoppanel;
         public JPanel createInnerCenterPanel(){
              innercenterpanel = new JPanel(new GridBagLayout());
              innercenterpanel.setBackground(TxtfontColor);
              innercenterpanel.setBorder(BorderFactory.createLoweredBevelBorder());
              GridBagConstraints GBC = new GridBagConstraints();
              GBC.fill = GridBagConstraints.HORIZONTAL;
              //Setting Font Type and Size
              Font font = new Font("Arial", Font.BOLD, 11);
              ItemNumberLbl = new JLabel("Item Number");
              ItemNumberLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              ItemNumberLbl.setFont(font);
              ItemNumberLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 1;
              innercenterpanel.add(ItemNumberLbl, GBC);     
              ItemNumberTxt = new JTextField(20);
              GBC.gridx = 2;
              GBC.gridy = 1;
              innercenterpanel.add(ItemNumberTxt, GBC);
              UnitPriceLbl = new JLabel("Unit Price");
              UnitPriceLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              UnitPriceLbl.setFont(font);
              UnitPriceLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 2;
              innercenterpanel.add(UnitPriceLbl, GBC);     
              UnitPriceTxt = new JTextField(20);
              //UnitPriceTxt.setEditable(false);
              GBC.gridx = 2;
              GBC.gridy = 2;
              innercenterpanel.add(UnitPriceTxt, GBC);
              QuantityReqLbl = new JLabel("Quantity Required");
              QuantityReqLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              QuantityReqLbl.setFont(font);
              QuantityReqLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 3;
              innercenterpanel.add(QuantityReqLbl, GBC);     
              QuantityReqTxt = new JTextField(20);
              //QuantityReqTxt.setEditable(false);
              GBC.gridx = 2;
              GBC.gridy = 3;
              innercenterpanel.add(QuantityReqTxt, GBC);
              TotPriceLbl = new JLabel("Total Price");
              TotPriceLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              TotPriceLbl.setFont(font);
              TotPriceLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 4;
              innercenterpanel.add(TotPriceLbl, GBC);     
              TotPriceTxt = new JTextField(20);
              //TotPriceTxt.setEditable(false);
              GBC.gridx = 2;
              GBC.gridy = 4;
              innercenterpanel.add(TotPriceTxt, GBC);
              return innercenterpanel;
         public JPanel createInnerBottomPanel(){
              innerbottompanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
              innerbottompanel.setBackground(TxtfontColor);
              //Setting Font Type and Size
              Font font = new Font("Arial", Font.BOLD, 11);
              GrandTotLbl = new JLabel("Grand Total");
              GrandTotLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              GrandTotLbl.setFont(font);
              GrandTotLbl.setForeground(LblfontColor);
              innerbottompanel.add(GrandTotLbl);
              innerbottompanel.add(Box.createHorizontalStrut(30));
              GrandTotTxt = new JTextField(20);
              innerbottompanel.add(GrandTotTxt);
              return innerbottompanel;
         public JPanel createInnerRightPanel(){
              innerrightpanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
              innerrightpanel.setBackground(TxtfontColor);
              innerrightpanel.setLayout(new BoxLayout(navrightpanel, BoxLayout.Y_AXIS));
              innerrightpanel.setBorder(BorderFactory.createLoweredBevelBorder());
              innerrightpanel.setLayout(new GridBagLayout());          
              GridBagConstraints GBC = new GridBagConstraints();
              GBC.fill = GridBagConstraints.HORIZONTAL;
              internalnextbtn = new JButton(createNextButtonIcon());
              GBC.gridx = 1;
              GBC.gridy = 1;
              internalnextbtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent evt){
                        //getInnerFieldText(currentItem);
                        internalprevbtn.setEnabled(true);
                        if(currentItem < MaxItems){
                             ++CurrentRecord;
                             //readOrder();
                             //readInnerOrderRecord(CurrentRecord);
                             setInnerFieldText(currentItem);
                             System.out.println(CurrentRecord);//Checking RECORD_NUM
                        if(currentItem == MaxItems){
                             internalnextbtn.setEnabled(false);
              innerrightpanel.add(internalnextbtn, GBC);
              return innerrightpanel;
         public JPanel createInnerLeftPanel(){
              innerleftpanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
              innerleftpanel.setBackground(TxtfontColor);
              innerleftpanel.setBorder(BorderFactory.createLoweredBevelBorder());
              innerleftpanel.setForeground(Color.BLACK);
              innerleftpanel.setLayout(new GridBagLayout());          
              GridBagConstraints GBC = new GridBagConstraints();
              GBC.fill = GridBagConstraints.HORIZONTAL;
              internalprevbtn = new JButton(createPreviousButtonIcon());
              GBC.gridx = 1;
              GBC.gridy = 1;
              internalprevbtn.addActionListener(new ActionListener(){
                   public void  actionPerformed(ActionEvent evt){
                        //getInnerFieldText(currentItem);
                        internalnextbtn.setEnabled(true);
                        if(currentItem == 1){
                             internalprevbtn.setEnabled(false);
                        if(currentItem > 0){
                             --currentItem;
                             //readOrder();
                             setInnerFieldText(currentItem);
              innerleftpanel.add(internalprevbtn, GBC);
              return innerleftpanel;
         public JPanel createCustOrdDetailsButtons(){
              createbuttonpanel();
              buttonpanel.setBackground(TxtfontColor);
              externalprevbtn = new JButton(createPreviousButtonIcon());
              externalprevbtn.addActionListener(new ActionListener(){
                   public void  actionPerformed(ActionEvent evt){
                        getFieldText(CurrentRecord);
                        externalnextbtn.setEnabled(true);
                        if(CurrentRecord == 1){
                             externalprevbtn.setEnabled(false);
                        if(CurrentRecord > 0){
                             --CurrentRecord;
                             setFieldText(CurrentRecord);
                             System.out.println(CurrentRecord);//Checking RECORD_NUM
              buttonpanel.add(externalprevbtn);
              addrecordbtn = new JButton("Add Record", createAddButtonIcon());
              addrecordbtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent evt){
                        try{
                             MaxRecord = readRecordNumber();
                             MaxRecord++;
                             writeRecordNumber(MaxRecord);
                             //--<BEGINNING>--Clear Fields-------------------------------------------------------//
                             CustIDTxt.setText("");
                             CustOrderIDTxt.setText(""+MaxRecord);
                             //Get today's date
                             Date todaydate = new Date();
                             OrderedDateTxt.setText(""+simpleDF.format(todaydate));
                             ItemNumberTxt.setText("");
                             UnitPriceTxt.setText("");
                             QuantityReqTxt.setText("");
                             TotPriceTxt.setText("");
                             GrandTotTxt.setText("");
                             //--<END>--Clear Fields-------------------------------------------------------------//
                             externalnextbtn.setEnabled(false);
                             externalprevbtn.setEnabled(true);
                             System.out.println(MaxRecord);
                        } catch(Exception ec){ec.printStackTrace();}
              buttonpanel.add(addrecordbtn);
              savebtn = new JButton("Save Data", createSaveButtonIcon());
              savebtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent evt){
                        setFieldText(CurrentRecord);
                        writeOrder();
                        writeRecordNumber(MaxRecord);
                        System.out.println(CurrentRecord);
                        System.out.println(MaxRecord);
              buttonpanel.add(savebtn);
              java.net.URL imageURL_AddRowIcon = CommonFeatures.class.getResource("Icons/edit_add.png");
              ImageIcon AddRowIcon = new ImageIcon(imageURL_AddRowIcon);
              additemreqbtn = new JButton("Add Item", AddRowIcon);
              additemreqbtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent evt){
                        try{
                             //--<BEGINNING>--Clear Fields-------------------------------------------------------//
                             ItemNumberTxt.setText("");
                             UnitPriceTxt.setText("");
                             QuantityReqTxt.setText("");
                             TotPriceTxt.setText("");
                             //--<END>--Clear Fields-------------------------------------------------------------//
                             //CurrentRecord = MaxRecord;
                             currentItem++;
                             setInnerFieldText(currentItem);
                             internalnextbtn.setEnabled(false);
                             internalprevbtn.setEnabled(true);
                             System.out.println(MaxRecord);
                        } catch(Exception ec){ec.printStackTrace();}
              buttonpanel.add(additemreqbtn);
              externalnextbtn = new JButton(createNextButtonIcon());
              externalnextbtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent evt){
                        getFieldText(CurrentRecord);
                        externalprevbtn.setEnabled(true);
                        if(CurrentRecord < MaxRecord){
                             ++CurrentRecord;
                             setFieldText(CurrentRecord);
                             System.out.println(CurrentRecord);//Checking RECORD_NUM
                        if(CurrentRecord == MaxRecord){
                             externalnextbtn.setEnabled(false);
              buttonpanel.add(externalnextbtn);
              return buttonpanel;
         //TODO
         public void setFieldText(int orderID){//TODO
              orderDetails[orderID].setCustID(Integer.parseInt(CustIDTxt.getText()));
              orderDetails[orderID].setCustOrderID(Integer.parseInt(CustOrderIDTxt.getText()));
              orderDetails[orderID].setOrderDate(OrderedDateTxt.getText());
              orderDetails[orderID].setInnerCustOrdObj(innerCustOrdObj);
              orderDetails[orderID].setMaxItems(MaxItems);
              setInnerFieldText(currentItem);
              orderDetails[orderID].setGrandTotal(Float.parseFloat(GrandTotTxt.getText()));
         public void setInnerFieldText(int currentItem){//TODO
              innerCustOrdObj[currentItem] = new InnerCustOrdObject();
              innerCustOrdObj[currentItem].setItemNumber(Integer.parseInt(ItemNumberTxt.getText()));
              innerCustOrdObj[currentItem].setUnitPrice(Float.parseFloat(UnitPriceTxt.getText()));
              innerCustOrdObj[currentItem].setQuantityRequired(Integer.parseInt(QuantityReqTxt.getText()));
              innerCustOrdObj[currentItem].setTotalPrice(Float.parseFloat(TotPriceTxt.getText()));
         public void getFieldText(int orderID){
              CustIDTxt.setText(Integer.toString(orderDetails[orderID].getCustID()));
              CustOrderIDTxt.setText(Integer.toString(orderDetails[orderID].getCustOrderID()));
              OrderedDateTxt.setText(""+orderDetails[orderID].getOrderDate());          
              currentItem = orderDetails[orderID].getMaxItems();
              System.err.println("currentItem" + currentItem);
              getInnerFieldText(currentItem);
              GrandTotTxt.setText(Float.toString(orderDetails[orderID].getGrandTotal()));
         public void getInnerFieldText(int currentItem){
              ItemNumberTxt.setText(Integer.toString(innerCustOrdObj[currentItem].getItemNumber()));
              UnitPriceTxt.setText(Float.toString(innerCustOrdObj[currentItem].getUnitPrice()));
              QuantityReqTxt.setText(Integer.toString(innerCustOrdObj[currentItem].getQuantityRequired()));
              TotPriceTxt.setText(Float.toString(innerCustOrdObj[currentItem].getTotalPrice()));
         public void writeOrder(){//TODO
              try {
                   objOut = new ObjectOutputStream(new FileOutputStream(OrderDetailsFile));
                   objOut.writeObject(orderDetails);
                   System.out.println("WORKING!");
                   objOut.flush();
                   objOut.close();
              } catch (IOException e) {
                   e.printStackTrace();
         public Object readOrder(){
              Object temporaryObj;
              try{
                   objIn = new ObjectInputStream(new FileInputStream(OrderDetailsFile));
                   temporaryObj = objIn.readObject();               
                   CustOrdObject[] blah = (CustOrdObject[]) temporaryObj;
                   System.out.println("Outer: "+blah[1].getCustID());
                   InnerCustOrdObject[] whee = blah[1].getInnerCustOrdObj();
                   System.out.println("Inner: "+whee[1].getItemNumber());
                   objIn.close();
                   System.out.println("Read Worky!");
                   return temporaryObj;
              }catch(Exception e){
                   e.printStackTrace();
                   System.out.println("Read No Worky!");
                   return null;
         public void writeRecordNumber(int MaxRecord){
              try{
                   objOut = new ObjectOutputStream(new FileOutputStream(OrdRecordNumStore));
                   objOut.writeObject(MaxRecord);
                   System.out.println("WORKING!");
                   objOut.flush();
                   objOut.close();
              }catch(Exception e){e.printStackTrace();}
         public int readRecordNumber() {
              try {
                   objIn = new ObjectInputStream(new FileInputStream(OrdRecordNumStore));
                   int temporaryObj = Integer.parseInt(objIn.readObject().toString());
                   objIn.close();
                   System.out.println("Read Number Worky!");
                   return temporaryObj;
              } catch (Exception e) {
                   e.printStackTrace();
                   System.out.println("Read Number No Worky!");
                   return -1;
    }Message was edited by:
    Kilik07
    Message was edited by:
    Kilik07

    ok i got reading to work to a certain extent... but the prob is i cnt seem to save my innerCustOrdObj proprly...when ever i look for a record using the gotorecordbtn, the outerobject, which is the orderDetails, seems to change but the innerCustOrdObj remains the same... heres the new code..
    public class CustomerOrderDetails extends CommonFeatures{
         //TODO
         private static int MAX_ORDERS = 200;
         private static int MAX_ORDERITEMS = 100;
         private static int MaxRecord;
         private static int CurrentRecord = 1;
         private static int currentItem;
         private static int MaxItems = 1;
         private static boolean FileExists, recFileExists;
         private static boolean RecordExists;
         private static CustOrdObject[] orderDetails = new CustOrdObject[MAX_ORDERS];
         private static InnerCustOrdObject[] innerCustOrdObj = new InnerCustOrdObject[MAX_ORDERITEMS];     
         private static File OrderDetailsFile = new File("CustOrdDetails.ser");
         private static File OrdRecordNumStore = new File("OrdRecordNumStore.txt");
         private static PrintWriter writeFile;
         private static BufferedReader readFile;
         private static ObjectOutputStream objOut;
         private static ObjectInputStream objIn;
         //Set format for date
         SimpleDateFormat simpleDF = new SimpleDateFormat("dd MM yyyy");
         //--<BEGINNING>--Declaring Interface Variables------------------------------------------//
         private JPanel innertoppanel, innercenterpanel, innerbottompanel, innerrightpanel, innerleftpanel;
         private JLabel CustIDLbl, CustOrderIDLbl, OrderedDateLbl, GrandTotLbl, ItemNumberLbl,UnitPriceLbl, QuantityReqLbl, TotPriceLbl;
         private JTextField CustIDTxt, CustOrderIDTxt, OrderedDateTxt, GrandTotTxt, ItemNumberTxt, UnitPriceTxt, QuantityReqTxt, TotPriceTxt;
         private JButton addrecordbtn, savebtn, externalprevbtn, externalnextbtn, internalprevbtn, internalnextbtn, gotorecordbtn, additemreqbtn;
         //--<END>--Declaring Interface Variables------------------------------------------------//
         public static void main(String[] args) {
              final CustomerOrderDetails COD = new CustomerOrderDetails();
              java.awt.EventQueue.invokeLater(new Runnable() {
                   public void run() {
                        try {
                             UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                             COD.createCustOrdDetailsScreen();
                        } catch (Exception eb) {
                             eb.printStackTrace();
         //--<BEGINNING>--Creating CustomerOrderDetails Screen---------------------------------------//
         public JFrame createCustOrdDetailsScreen() {
              createDefaultFrame();
              mainframe.setSize(800,500);
              createContainerPanel();
              containerpanel.add(createCustOrdDetailsTitle(), BorderLayout.NORTH);
              containerpanel.add(createCustOrdDetailsMainPanel(), BorderLayout.CENTER);
              //containerpanel.add(createCustOrdDetailsLeftNavButtons(), BorderLayout.WEST);
              //containerpanel.add(createCustOrdDetailsRightNavButtons(), BorderLayout.EAST);
              containerpanel.add(createCustOrdDetailsButtons(), BorderLayout.SOUTH);
              mainframe.setContentPane(containerpanel);
              mainframe.setLocationRelativeTo(null);
              mainframe.setVisible(true);
              //--<BEGINNING>--Checks to see whether CRecordNumberStore file exists-------------------------------//
              if (OrdRecordNumStore.exists() == true) {
                   recFileExists = true;
              }else {
                   recFileExists = false;
              if (recFileExists == true) {
                   MaxRecord = readRecordNumber();
                   CurrentRecord = MaxRecord;
                   //readOrder();
                   //readInnerOrderRecord(CurrentRecord);
                   System.out.println("Current Record " +CurrentRecord);
                   System.out.println("Max Record " +MaxRecord);
              }else{
                   MaxRecord = 1;
                   writeRecordNumber(MaxRecord);
                   CustOrderIDTxt.setText(""+MaxRecord);
                   System.out.println("Current Record " +CurrentRecord);
                   System.out.println("Max Record " +MaxRecord);
              //--<END>--Checks to see whether CRecordNumberStore file exists--------------------------------------//
              if(readOrder() != null){
                   orderDetails = (CustOrdObject[]) readOrder();
                   //CurrentRecord--;
                   //System.out.println("Current Rec Here"+CurrentRecord);
                   if(orderDetails[CurrentRecord] == null){
                        System.err.println("CustomerOrderObj 1 is null !!");
                   }else{
                        System.err.println("CustomerOrderObj 1 is  not null !!");
                   if(orderDetails[CurrentRecord].getInnerCustOrdObj() == null){
                        System.err.println("InnerCustomerOrderObj is null !!");
                   }else{
                        System.err.println("InnerCustomerOrderObj is  not null !!");
                   innerCustOrdObj = orderDetails[CurrentRecord].getInnerCustOrdObj();
                   MaxItems = orderDetails[CurrentRecord].getMaxItems();
                   if(CurrentRecord > 1 && CurrentRecord < MaxRecord){
                        externalnextbtn.setEnabled(true);
                        externalprevbtn.setEnabled(true);
                   if(CurrentRecord >= MaxRecord){
                        externalnextbtn.setEnabled(false);
                   getFieldText(CurrentRecord);
                   getInnerFieldText(MaxItems);
              }else{
                   orderDetails[CurrentRecord] = new CustOrdObject();
                   currentItem = 1;
              return mainframe;
         //--<END>--Creating CustomerOrderDetails Screen---------------------------------------------//
         public JPanel createCustOrdDetailsTitle(){
              createTitlePanel();
              titlepanel.setBackground(TxtfontColor);
              label.setText("- Customer Order Details -");
              labelpanel.setBackground(TxtfontColor);
              label.setForeground(Color.white);
              createbuttonpanel();
              buttonpanel.setBackground(TxtfontColor) ;
              buttonpanel.add(createReturnToMainMenuButton());
              titlepanel.add(labelpanel, BorderLayout.WEST);
              titlepanel.add(buttonpanel, BorderLayout.EAST);
              return titlepanel;
         public JPanel createCustOrdDetailsMainPanel(){
              createmainpanel();
              mainpanel.setBackground(TxtfontColor);
              mainpanel.setLayout(new BorderLayout());          
              mainpanel.setBorder(BorderFactory.createTitledBorder(""));
              mainpanel.add(createInnerTopPanel(), BorderLayout.NORTH);
              mainpanel.add(createInnerCenterPanel(), BorderLayout.CENTER);
              mainpanel.add(createInnerBottomPanel(), BorderLayout.SOUTH);
              mainpanel.add(createInnerRightPanel(), BorderLayout.EAST);
              mainpanel.add(createInnerLeftPanel(), BorderLayout.WEST);
              return mainpanel;
         public JPanel createInnerTopPanel(){
              innertoppanel = new JPanel(new GridBagLayout());
              innertoppanel.setBackground(TxtfontColor);
              GridBagConstraints GBC = new GridBagConstraints();
              GBC.fill = GridBagConstraints.HORIZONTAL;
              //Setting Font Type and Size
              Font font = new Font("Arial", Font.BOLD, 11);
              CustIDLbl = new JLabel("Customer ID");
              CustIDLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              CustIDLbl.setFont(font);
              CustIDLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 1;
              innertoppanel.add(CustIDLbl, GBC);     
              CustIDTxt = new JTextField(20);
              CustIDTxt.setEditable(true);
              GBC.gridx = 2;
              GBC.gridy = 1;
              innertoppanel.add(CustIDTxt, GBC);
              GBC.gridx = 3;
              GBC.gridy = 1;
              innertoppanel.add(Box.createHorizontalStrut(220), GBC);
              OrderedDateLbl = new JLabel("Order Date");
              OrderedDateLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              OrderedDateLbl.setFont(font);
              OrderedDateLbl.setForeground(LblfontColor);
              GBC.gridx = 4;
              GBC.gridy = 1;
              innertoppanel.add(OrderedDateLbl, GBC);     
              //Get today's date
              Date todaydate = new Date();
              OrderedDateTxt = new JTextField(simpleDF.format(todaydate), 20);
              OrderedDateTxt.setHorizontalAlignment(JTextField.CENTER);
              OrderedDateTxt.setEditable(false);
              GBC.gridx = 5;
              GBC.gridy = 1;
              innertoppanel.add(OrderedDateTxt, GBC);
              CustOrderIDLbl = new JLabel("Customer Order ID");
              CustOrderIDLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              CustOrderIDLbl.setFont(font);
              CustOrderIDLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 2;
              innertoppanel.add(CustOrderIDLbl, GBC);
              CustOrderIDTxt = new JTextField(20);
              //CustOrderIDTxt.setEditable(false);
              GBC.gridx = 2;
              GBC.gridy = 2;
              innertoppanel.add(CustOrderIDTxt, GBC);
              return innertoppanel;
         public JPanel createInnerCenterPanel(){
              innercenterpanel = new JPanel(new GridBagLayout());
              innercenterpanel.setBackground(TxtfontColor);
              innercenterpanel.setBorder(BorderFactory.createLoweredBevelBorder());
              GridBagConstraints GBC = new GridBagConstraints();
              GBC.fill = GridBagConstraints.HORIZONTAL;
              //Setting Font Type and Size
              Font font = new Font("Arial", Font.BOLD, 11);
              ItemNumberLbl = new JLabel("Item Number");
              ItemNumberLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              ItemNumberLbl.setFont(font);
              ItemNumberLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 1;
              innercenterpanel.add(ItemNumberLbl, GBC);     
              ItemNumberTxt = new JTextField(20);
              GBC.gridx = 2;
              GBC.gridy = 1;
              innercenterpanel.add(ItemNumberTxt, GBC);
              UnitPriceLbl = new JLabel("Unit Price");
              UnitPriceLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              UnitPriceLbl.setFont(font);
              UnitPriceLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 2;
              innercenterpanel.add(UnitPriceLbl, GBC);     
              UnitPriceTxt = new JTextField(20);
              //UnitPriceTxt.setEditable(false);
              GBC.gridx = 2;
              GBC.gridy = 2;
              innercenterpanel.add(UnitPriceTxt, GBC);
              QuantityReqLbl = new JLabel("Quantity Required");
              QuantityReqLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              QuantityReqLbl.setFont(font);
              QuantityReqLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 3;
              innercenterpanel.add(QuantityReqLbl, GBC);     
              QuantityReqTxt = new JTextField(20);
              //QuantityReqTxt.setEditable(false);
              GBC.gridx = 2;
              GBC.gridy = 3;
              innercenterpanel.add(QuantityReqTxt, GBC);
              TotPriceLbl = new JLabel("Total Price");
              TotPriceLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              TotPriceLbl.setFont(font);
              TotPriceLbl.setForeground(LblfontColor);
              GBC.gridx = 1;
              GBC.gridy = 4;
              innercenterpanel.add(TotPriceLbl, GBC);     
              TotPriceTxt = new JTextField(20);
              TotPriceTxt.setEditable(false);
              TotPriceTxt.addFocusListener(new FocusAdapter(){
                   public void focusGained(FocusEvent evt){
                        TotPriceTxt.setText(""+Integer.parseInt(UnitPriceTxt.getText())*Integer.parseInt(QuantityReqTxt.getText()));
              GBC.gridx = 2;
              GBC.gridy = 4;
              innercenterpanel.add(TotPriceTxt, GBC);
              return innercenterpanel;
         public JPanel createInnerBottomPanel(){
              innerbottompanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
              innerbottompanel.setBackground(TxtfontColor);
              //Setting Font Type and Size
              Font font = new Font("Arial", Font.BOLD, 11);
              GrandTotLbl = new JLabel("Grand Total");
              GrandTotLbl.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              GrandTotLbl.setFont(font);
              GrandTotLbl.setForeground(LblfontColor);
              innerbottompanel.add(GrandTotLbl);
              innerbottompanel.add(Box.createHorizontalStrut(30));
              GrandTotTxt = new JTextField(20);
              innerbottompanel.add(GrandTotTxt);
              return innerbottompanel;
         public JPanel createInnerRightPanel(){
              innerrightpanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
              innerrightpanel.setBackground(TxtfontColor);
              innerrightpanel.setLayout(new BoxLayout(navrightpanel, BoxLayout.Y_AXIS));
              innerrightpanel.setBorder(BorderFactory.createLoweredBevelBorder());
              innerrightpanel.setLayout(new GridBagLayout());          
              GridBagConstraints GBC = new GridBagConstraints();
              GBC.fill = GridBagConstraints.HORIZONTAL;
              internalnextbtn = new JButton(createNextButtonIcon());
              GBC.gridx = 1;
              GBC.gridy = 1;
              internalnextbtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent evt){
                        getInnerFieldText(currentItem);
                        internalprevbtn.setEnabled(true);
                        if(currentItem < MaxItems){
                             ++currentItem;
                             orderDetails[CurrentRecord].getInnerCustOrdObj();
                             setInnerFieldText(currentItem);
                             System.out.println("Current Item" + currentItem);
                        if(currentItem == MaxItems){
                             internalnextbtn.setEnabled(false);
              innerrightpanel.add(internalnextbtn, GBC);
              return innerrightpanel;
         public JPanel createInnerLeftPanel(){
              innerleftpanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
              innerleftpanel.setBackground(TxtfontColor);
              innerleftpanel.setBorder(BorderFactory.createLoweredBevelBorder());
              innerleftpanel.setForeground(Color.BLACK);
              innerleftpanel.setLayout(new GridBagLayout());          
              GridBagConstraints GBC = new GridBagConstraints();
              GBC.fill = GridBagConstraints.HORIZONTAL;
              internalprevbtn = new JButton(createPreviousButtonIcon());
              GBC.gridx = 1;
              GBC.gridy = 1;
              internalprevbtn.addActionListener(new ActionListener(){
                   public void  actionPerformed(ActionEvent evt){
                        getInnerFieldText(currentItem);
                        internalnextbtn.setEnabled(true);
                        if(currentItem == 1){
                             internalprevbtn.setEnabled(false);
                        if(currentItem > 0){
                             --currentItem;
                             orderDetails[CurrentRecord].getInnerCustOrdObj();
                             setInnerFieldText(currentItem);
                             System.out.println("Current Item" + currentItem);
              innerleftpanel.add(internalprevbtn, GBC);
              return innerleftpanel;
         public JPanel createCustOrdDetailsButtons(){
              createbuttonpanel();
              buttonpanel.setBackground(TxtfontColor);
              externalprevbtn = new JButton(createPreviousButtonIcon());
              externalprevbtn.addActionListener(new ActionListener(){
                   public void  actionPerformed(ActionEvent evt){
                        getFieldText(CurrentRecord);
                        externalnextbtn.setEnabled(true);
                        if(CurrentRecord == 1){
                             externalprevbtn.setEnabled(false);
                        if(CurrentRecord > 0){
                             --CurrentRecord;
                             setFieldText(CurrentRecord);
                             System.out.println("Current Record " + CurrentRecord);//Checking RECORD_NUM
              buttonpanel.add(externalprevbtn);
              addrecordbtn = new JButton("Add Record", createAddButtonIcon());
              addrecordbtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent evt){
                        try{
                             MaxRecord = readRecordNumber();
                             MaxRecord++;
                             CurrentRecord = MaxRecord;
                             orderDetails[CurrentRecord] = new CustOrdObject();
                             writeRecordNumber(MaxRecord);
                             MaxItems = 1;
                             innerCustOrdObj[MaxItems] = new InnerCustOrdObject();
                             //--<BEGINNING>--Clear Fields-------------------------------------------------------//
                             CustIDTxt.setText("");
                             CustOrderIDTxt.setText(""+MaxRecord);
                             //Get today's date
                             Date todaydate = new Date();
                             OrderedDateTxt.setText(""+simpleDF.format(todaydate));
                             ItemNumberTxt.setText("");
                             UnitPriceTxt.setText("");
                             QuantityReqTxt.setText("");
                             TotPriceTxt.setText("");
                             GrandTotTxt.setText("");
                             //--<END>--Clear Fields-------------------------------------------------------------//
                             externalnextbtn.setEnabled(false);
                             externalprevbtn.setEnabled(true);
                             System.out.println(MaxRecord);
                        } catch(Exception ec){ec.printStackTrace();}
              buttonpanel.add(addrecordbtn);
              savebtn = new JButton("Save Data", createSaveButtonIcon());
              savebtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent evt){
                        setFieldText(CurrentRecord);
                        setInnerFieldText(MaxItems);
                        writeOrder();
                        writeRecordNumber(MaxRecord);
                        System.out.println(CurrentRecord);
                        System.out.println(MaxRecord);
              buttonpanel.add(savebtn);
              java.net.URL imageURL_AddRowIcon = CommonFeatures.class.getResource("Icons/edit_add.png");
              ImageIcon AddRowIcon = new ImageIcon(imageURL_AddRowIcon);
              additemreqbtn = new JButton("Add Item", AddRowIcon);
              additemreqbtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent evt){
                        try{
                             //--<BEGINNING>--Clear Fields-------------------------------------------------------//
                             ItemNumberTxt.setText("");
                             UnitPriceTxt.setText("");
                             QuantityReqTxt.setText("");
                             TotPriceTxt.setText("");
                             //--<END>--Clear Fields-------------------------------------------------------------//
                             //CurrentRecord = MaxRecord;
                             MaxItems++;
                             innerCustOrdObj[MaxItems] = new InnerCustOrdObject();
                             System.out.println("Max Items "+MaxItems);
                             currentItem = MaxItems;
                             orderDetails[CurrentRecord].setMaxItems(MaxItems);
                             ///setInnerFieldText(currentItem);
                             internalnextbtn.setEnabled(false);
                             internalprevbtn.setEnabled(true);
                        } catch(Exception ec){ec.printStackTrace();}
              buttonpanel.add(additemreqbtn);
              externalnextbtn = new JButton(createNextButtonIcon());
              externalnextbtn.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent evt){
                        getFieldText(CurrentRecord);
                        externalprevbtn.setEnabled(true);
                        if(CurrentRecord < MaxRecord){
                             ++CurrentRecord;
                             setFieldText(CurrentRecord);
                             System.out.println(CurrentRecord);//Checking RECORD_NUM
                        if(CurrentRecord == MaxRecord){
                             externalnextbtn.setEnabled(false);
              buttonpanel.add(externalnextbtn);
              gotorecordbtn = new JButton("Go To Record", createGotoButtonIcon());
              gotorecordbtn.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent evt){
                         * The text from the GotorecordTxt textfield will be taken and assigned
                         * to a temporary integer variable called Find. 
                        int Find = Integer.parseInt(CustOrderIDTxt.getText());
                        for(int j=1; j <= MaxRecord; j++){
                              * Using a for loop, each record can be read using the readCustRecord
                              * method.
                             getFieldText(j);
                              * An if condition is utilized to check whether the temporary stored variable, Find,
                              * matches a field in a record. If this record is found, then using the RecordExists
                              * which was declared at the top, either a true or false statement can be assigned
                              * If the record exists, then a true statement will be assigned, if not a false
                              * statement will be assigned.
                             if(orderDetails[j].getCustOrderID() == Find){
                                  RecordExists = true;
                                  break;
                             }else{
                                  RecordExists = false;
                        if(RecordExists == false){
                              * If the RecordExists is assigned a false statement, then a message will be
                              * displayed to show that the record does not exist.
                             JOptionPane.showMessageDialog(null, "Record Does Not Exist!", "Error Message", JOptionPane.ERROR_MESSAGE, createErrorIcon());
                        }else{
                             getFieldText(Find);
              buttonpanel.add(gotorecordbtn);
              return buttonpanel;
         //TODO
         public void setFieldText(int orderID){//TODO
              orderDetails[orderID].setCustID(Integer.parseInt(CustIDTxt.getText()));
              orderDetails[orderID].setCustOrderID(Integer.parseInt(CustOrderIDTxt.getText()));
              orderDetails[orderID].setOrderDate(OrderedDateTxt.getText());
              orderDetails[orderID].setInnerCustOrdObj(innerCustOrdObj);
              orderDetails[orderID].setMaxItems(MaxItems);
              setInnerFieldText(currentItem);
              orderDetails[orderID].setGrandTotal(Float.parseFloat(GrandTotTxt.getText()));
         public void setInnerFieldText(int currentItem){//TODO
              innerCustOrdObj[currentItem] = new InnerCustOrdObject();
              innerCustOrdObj[currentItem].setMaxItems(MaxItems);
              innerCustOrdObj[currentItem].setItemNumber(Integer.parseInt(ItemNumberTxt.getText()));
              innerCustOrdObj[currentItem].setUnitPrice(Float.parseFloat(UnitPriceTxt.getText()));
              innerCustOrdObj[currentItem].setQuantityRequired(Integer.parseInt(QuantityReqTxt.getText()));
              innerCustOrdObj[currentItem].setTotalPrice(Float.parseFloat(TotPriceTxt.getText()));
         public void getFieldText(int orderID){
              CustIDTxt.setText(Integer.toString(orderDetails[orderID].getCustID()));
              CustOrderIDTxt.setText(Integer.toString(orderDetails[orderID].getCustOrderID()));
              OrderedDateTxt.setText(""+orderDetails[orderID].getOrderDate());          
              currentItem = orderDetails[orderID].getMaxItems();
              orderDetails[orderID].getInnerCustOrdObj();
              System.err.println("currentItem" + currentItem);
              //getInnerFieldText(currentItem);
              GrandTotTxt.setText(Float.toString(orderDetails[orderID].getGrandTotal()));
         public void getInnerFieldText(int currentItem){
              ItemNumberTxt.setText(Integer.toString(innerCustOrdObj[currentItem].getItemNumber()));
              UnitPriceTxt.setText(Float.toString(innerCustOrdObj[currentItem].getUnitPrice()));
              QuantityReqTxt.setText(Integer.toString(innerCustOrdObj[currentItem].getQuantityRequired()));
              TotPriceTxt.setText(Float.toString(innerCustOrdObj[currentItem].getTotalPrice()));
         public void writeOrder(){//TODO
              try {
                   objOut = new ObjectOutputStream(new FileOutputStream(OrderDetailsFile));
                   objOut.writeObject(orderDetails);
                   System.out.println("WORKING!");
                   objOut.flush();
                   objOut.close();
              } catch (IOException e) {
                   e.printStackTrace();
         public Object readOrder(){
              Object temporaryObj;
              try{
                   objIn = new ObjectInputStream(new FileInputStream(OrderDetailsFile));
                   temporaryObj = objIn.readObject();               
                   CustOrdObject[] blah = (CustOrdObject[]) temporaryObj;
                   /*               System.out.println("Outer: "+blah[1].getCustID());
                   InnerCustOrdObject[] whee = blah[1].getInnerCustOrdObj();
                   System.out.println("Inner: "+whee[1].getItemNumber());*/
                   objIn.close();
                   System.out.println("Read Worky!");
                   return temporaryObj;
              }catch(Exception e){
                   e.printStackTrace();
                   System.out.println("Read No Worky!");
                   return null;
         public void writeRecordNumber(int MaxRecord){
              try{
                   objOut = new ObjectOutputStream(new FileOutputStream(OrdRecordNumStore));
                   objOut.writeObject(MaxRecord);
                   System.out.println("WORKING!");
                   objOut.flush();
                   objOut.close();
              }catch(Exception e){e.printStackTrace();}
         public int readRecordNumber() {
              try {
                   objIn = new ObjectInputStream(new FileInputStream(OrdRecordNumStore));
                   int temporaryObj = Integer.parseInt(objIn.readObject().toString());
                   objIn.close();
                   System.out.println("Read Number Worky!");
                   return temporaryObj;
              } catch (Exception e) {
                   e.printStackTrace();
                   System.out.println("Read Number No Worky!");
                   return -1;
    }Message was edited by:
    Kilik07

  • [SOLVED]problem with UEFI and Windows 8

    Hi guys,
    I have installed archlinux but have the problem with grub2 and UEFI
    Im not have  /boot/efi/efi/microsoft/boot/bootmgfw.efi
    for install grub2:
    modprobe dm-mod
    modprobe efivars
    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot/efi/EFI --recheck --debug
    cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/efi/EFI/grub/locale/en.mo
    log grub-install
    # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot/efi/EFI --recheck --debug
    + setup_verbose=--verbose
    + efi_quiet=-q
    + '[' -z /boot/efi/EFI ']'
    ++ echo /boot/efi/EFI/grub
    ++ sed 's,//*,/,g'
    + grubdir=/boot/efi/EFI/grub
    + device_map=/boot/efi/EFI/grub/device.map
    + '[' x86_64-efi = i386-pc ']'
    + '[' x86_64-efi = sparc64-ieee1275 ']'
    + set /usr/bin/grub-mkimage dummy
    + test -f /usr/bin/grub-mkimage
    + :
    + '[' xefi = xefi ']'
    + test -n /boot/efi
    ++ /usr/sbin/grub-probe --target=device --device-map= /boot/efi
    + install_device=/dev/sda9
    + test -n /boot/efi
    + efi_distributor=arch_grub
    + test no = yes
    + case "$grub_modinfo_target_cpu" in
    + efi_file=grubx64.efi
    + efidir=/boot/efi/EFI/arch_grub
    + mkdir -p /boot/efi/EFI/arch_grub
    + mkdir -p /boot/efi/EFI/grub
    + mkdir -p /boot/efi/EFI/grub/x86_64-efi
    + test yes = yes
    + rm -f /boot/efi/EFI/grub/device.map
    + test -f /boot/efi/EFI/grub/device.map
    + device_map=
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f '/boot/efi/EFI/grub/*.mod'
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f '/boot/efi/EFI/grub/*.lst'
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f '/boot/efi/EFI/grub/*.img'
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f '/boot/efi/EFI/grub/efiemu??.o'
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/acpi.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/acpi.mod
    + '[' acpi.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/acpi.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/adler32.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/adler32.mod
    + '[' adler32.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/adler32.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/affs.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/affs.mod
    + '[' affs.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/affs.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/afs.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/afs.mod
    + '[' afs.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/afs.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/ahci.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/ahci.mod
    + '[' ahci.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/ahci.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/all_video.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/all_video.mod
    + '[' all_video.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/all_video.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/aout.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/aout.mod
    + '[' aout.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/aout.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/appleldr.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/appleldr.mod
    + '[' appleldr.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/appleldr.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/at_keyboard.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/at_keyboard.mod
    + '[' at_keyboard.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/at_keyboard.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/ata.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/ata.mod
    + '[' ata.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/ata.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/backtrace.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/backtrace.mod
    + '[' backtrace.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/backtrace.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/bfs.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/bfs.mod
    + '[' bfs.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/bfs.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/bitmap.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/bitmap.mod
    + '[' bitmap.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/bitmap.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/bitmap_scale.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/bitmap_scale.mod
    + '[' bitmap_scale.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/bitmap_scale.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/blocklist.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/blocklist.mod
    + '[' blocklist.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/blocklist.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/boot.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/boot.mod
    + '[' boot.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/boot.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/bsd.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/bsd.mod
    + '[' bsd.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/bsd.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/btrfs.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/btrfs.mod
    + '[' btrfs.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/btrfs.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/bufio.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/bufio.mod
    + '[' bufio.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/bufio.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/cacheinfo.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/cacheinfo.mod
    + '[' cacheinfo.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/cacheinfo.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/cat.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/cat.mod
    + '[' cat.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/cat.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/chain.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/chain.mod
    + '[' chain.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/chain.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/cmp.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/cmp.mod
    + '[' cmp.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/cmp.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/configfile.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/configfile.mod
    + '[' configfile.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/configfile.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/cpio.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/cpio.mod
    + '[' cpio.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/cpio.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/cpio_be.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/cpio_be.mod
    + '[' cpio_be.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/cpio_be.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/cpuid.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/cpuid.mod
    + '[' cpuid.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/cpuid.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/crc64.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/crc64.mod
    + '[' crc64.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/crc64.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/crypto.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/crypto.mod
    + '[' crypto.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/crypto.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/cryptodisk.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/cryptodisk.mod
    + '[' cryptodisk.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/cryptodisk.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/cs5536.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/cs5536.mod
    + '[' cs5536.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/cs5536.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/date.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/date.mod
    + '[' date.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/date.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/datehook.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/datehook.mod
    + '[' datehook.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/datehook.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/datetime.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/datetime.mod
    + '[' datetime.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/datetime.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/diskfilter.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/diskfilter.mod
    + '[' diskfilter.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/diskfilter.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/dm_nv.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/dm_nv.mod
    + '[' dm_nv.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/dm_nv.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/echo.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/echo.mod
    + '[' echo.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/echo.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/efi_gop.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/efi_gop.mod
    + '[' efi_gop.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/efi_gop.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/efi_uga.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/efi_uga.mod
    + '[' efi_uga.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/efi_uga.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/efinet.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/efinet.mod
    + '[' efinet.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/efinet.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/ehci.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/ehci.mod
    + '[' ehci.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/ehci.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/elf.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/elf.mod
    + '[' elf.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/elf.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/exfat.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/exfat.mod
    + '[' exfat.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/exfat.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/exfctest.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/exfctest.mod
    + '[' exfctest.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/exfctest.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/ext2.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/ext2.mod
    + '[' ext2.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/ext2.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/extcmd.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/extcmd.mod
    + '[' extcmd.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/extcmd.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/fat.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/fat.mod
    + '[' fat.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/fat.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/fixvideo.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/fixvideo.mod
    + '[' fixvideo.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/fixvideo.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/font.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/font.mod
    + '[' font.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/font.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/fshelp.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/fshelp.mod
    + '[' fshelp.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/fshelp.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/functional_test.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/functional_test.mod
    + '[' functional_test.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/functional_test.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_arcfour.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_arcfour.mod
    + '[' gcry_arcfour.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_arcfour.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_blowfish.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_blowfish.mod
    + '[' gcry_blowfish.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_blowfish.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_camellia.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_camellia.mod
    + '[' gcry_camellia.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_camellia.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_cast5.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_cast5.mod
    + '[' gcry_cast5.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_cast5.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_crc.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_crc.mod
    + '[' gcry_crc.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_crc.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_des.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_des.mod
    + '[' gcry_des.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_des.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_md4.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_md4.mod
    + '[' gcry_md4.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_md4.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_md5.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_md5.mod
    + '[' gcry_md5.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_md5.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_rfc2268.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_rfc2268.mod
    + '[' gcry_rfc2268.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_rfc2268.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_rijndael.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_rijndael.mod
    + '[' gcry_rijndael.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_rijndael.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_rmd160.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_rmd160.mod
    + '[' gcry_rmd160.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_rmd160.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_seed.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_seed.mod
    + '[' gcry_seed.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_seed.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_serpent.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_serpent.mod
    + '[' gcry_serpent.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_serpent.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_sha1.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_sha1.mod
    + '[' gcry_sha1.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_sha1.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_sha256.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_sha256.mod
    + '[' gcry_sha256.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_sha256.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_sha512.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_sha512.mod
    + '[' gcry_sha512.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_sha512.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_tiger.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_tiger.mod
    + '[' gcry_tiger.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_tiger.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_twofish.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_twofish.mod
    + '[' gcry_twofish.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_twofish.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gcry_whirlpool.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gcry_whirlpool.mod
    + '[' gcry_whirlpool.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gcry_whirlpool.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/geli.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/geli.mod
    + '[' geli.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/geli.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gettext.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gettext.mod
    + '[' gettext.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gettext.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gfxmenu.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gfxmenu.mod
    + '[' gfxmenu.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gfxmenu.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gfxterm.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gfxterm.mod
    + '[' gfxterm.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gfxterm.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gptsync.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gptsync.mod
    + '[' gptsync.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gptsync.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/gzio.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/gzio.mod
    + '[' gzio.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/gzio.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/halt.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/halt.mod
    + '[' halt.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/halt.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/hashsum.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/hashsum.mod
    + '[' hashsum.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/hashsum.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/hdparm.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/hdparm.mod
    + '[' hdparm.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/hdparm.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/hello.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/hello.mod
    + '[' hello.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/hello.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/help.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/help.mod
    + '[' help.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/help.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/hexdump.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/hexdump.mod
    + '[' hexdump.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/hexdump.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/hfs.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/hfs.mod
    + '[' hfs.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/hfs.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/hfsplus.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/hfsplus.mod
    + '[' hfsplus.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/hfsplus.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/http.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/http.mod
    + '[' http.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/http.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/iorw.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/iorw.mod
    + '[' iorw.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/iorw.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/iso9660.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/iso9660.mod
    + '[' iso9660.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/iso9660.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/jfs.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/jfs.mod
    + '[' jfs.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/jfs.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/jpeg.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/jpeg.mod
    + '[' jpeg.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/jpeg.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/keylayouts.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/keylayouts.mod
    + '[' keylayouts.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/keylayouts.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/keystatus.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/keystatus.mod
    + '[' keystatus.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/keystatus.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/ldm.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/ldm.mod
    + '[' ldm.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/ldm.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/linux.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/linux.mod
    + '[' linux.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/linux.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/loadbios.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/loadbios.mod
    + '[' loadbios.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/loadbios.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/loadenv.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/loadenv.mod
    + '[' loadenv.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/loadenv.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/loopback.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/loopback.mod
    + '[' loopback.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/loopback.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/ls.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/ls.mod
    + '[' ls.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/ls.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/lsacpi.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/lsacpi.mod
    + '[' lsacpi.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/lsacpi.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/lsefimmap.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/lsefimmap.mod
    + '[' lsefimmap.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/lsefimmap.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/lsefisystab.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/lsefisystab.mod
    + '[' lsefisystab.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/lsefisystab.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/lsmmap.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/lsmmap.mod
    + '[' lsmmap.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/lsmmap.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/lspci.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/lspci.mod
    + '[' lspci.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/lspci.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/lssal.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/lssal.mod
    + '[' lssal.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/lssal.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/lua.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/lua.mod
    + '[' lua.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/lua.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/luks.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/luks.mod
    + '[' luks.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/luks.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/lvm.mod
    ++ basename /boot/efi/EFI/grub/x86_64-efi/lvm.mod
    + '[' lvm.mod '!=' menu.lst ']'
    + rm -f /boot/efi/EFI/grub/x86_64-efi/lvm.mod
    + for file in '"${grubdir}"/*.mod' '"${grubdir}"/*.lst' '"${grubdir}"/*.img' '"${grubdir}"/efiemu??.o' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.mod' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.lst' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/*.img' '"${grubdir}"/${grub_modinfo_target_cpu}-$grub_modinfo_platform/efiemu??.o'
    + test -f /boot/efi/EFI/grub/x86_64-efi/lzopio.mod
    ++ basename /bo

    thanks for your answer
    # parted -l
    Model: ATA ST1000LM024 HN-M (scsi)
    Disk /dev/sda: 1000GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: gpt
    Disk Flags:
    Number Start End Size File system Name Flags
    1 1049kB 525MB 524MB ntfs Basic data partition hidden, diag
    2 525MB 840MB 315MB fat32 EFI system partition boot
    3 840MB 974MB 134MB Microsoft reserved partition msftres
    4 974MB 489GB 488GB ntfs Basic data partition
    7 489GB 897GB 408GB ext4
    8 897GB 897GB 537MB fat16
    9 897GB 913GB 16.1GB ext4
    10 913GB 972GB 58.8GB ext4
    5 972GB 999GB 26.9GB ntfs Basic data partition hidden, diag
    6 999GB 1000GB 1074MB fat32 Basic data partition hidden, diag
    Model: General USB Flash Disk (scsi)
    Disk /dev/sdb: 4010MB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    Disk Flags:
    Number Start End Size Type File system Flags
    1 24.6kB 4010MB 4010MB primary fat32 boot
    Model: Linux device-mapper (snapshot) (dm)
    Disk /dev/mapper/arch_root-image: 1467MB
    Sector size (logical/physical): 512B/512B
    Partition Table: loop
    Disk Flags:
    Number Start End Size File system Flags
    1 0.00B 1467MB 1467MB ext2
    # blkid
    /dev/sda1: LABEL="Windows RE tools" UUID="EE5AC7915AC754CD" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="7d89c435-723c-477f-919c-dcd539375f01"
    /dev/sda2: LABEL="SYSTEM" UUID="DACA-0FF8" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="34b2d3a0-9a64-478b-a34f-285a2d6c12d2"
    /dev/sda4: UUID="DA70CBFC70CBDD7F" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="b020bb63-4913-41ad-86c8-da3601795506"
    /dev/sda5: LABEL="SAMSUNG_REC2" UUID="D49855CE9855AFAA" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="b3ec5169-1fbe-4092-bd3b-05ef12a56844"
    /dev/sda6: LABEL="SAMSUNG_REC" UUID="16CF-51AE" TYPE="vfat" PARTLABEL="Basic data partition" PARTUUID="6946be1a-5046-4a95-4173-636c65706975"
    /dev/sda7: UUID="baa90712-c2b6-491d-8843-84d66cba2cc0" TYPE="ext4" PARTUUID="3ead29cf-7177-4939-8299-7132b33acb95"
    /dev/sda8: SEC_TYPE="msdos" UUID="66E2-B8FD" TYPE="vfat" PARTUUID="9305da3f-d285-4420-b7da-b2bb5940ea96"
    /dev/sda9: UUID="bfb3161c-830d-4f52-92e4-3e4e4dc49728" TYPE="ext4" PARTUUID="84122728-6714-428a-a438-7469d942327c"
    /dev/sda10: UUID="c10debbf-ac9c-4749-bd5f-aab13936d4cc" TYPE="ext4" PARTUUID="678c26ba-b31e-460a-bcb9-92c89d5d1de2"
    /dev/sdb1: LABEL="ARCH_201301" UUID="88C0-9762" TYPE="vfat"
    /dev/sda3: PARTLABEL="Microsoft reserved partition" PARTUUID="46dc5228-c93d-4951-9d0b-920ce27c950e"
    /dev/loop0: TYPE="squashfs"
    /dev/loop1: UUID="578f4f7a-123c-4d94-a4fc-3104a3e41cd9" TYPE="ext4"
    /dev/loop2: UUID="578f4f7a-123c-4d94-a4fc-3104a3e41cd9" TYPE="ext4"
    /dev/mapper/arch_root-image: UUID="578f4f7a-123c-4d94-a4fc-3104a3e41cd9" TYPE="ext4"
    # df -h
    df: '/run/archiso/bootmnt': No such file or directory
    df: '/run/archiso/cowspace': No such file or directory
    df: '/run/archiso/sfs/root-image': No such file or directory
    df: '/sys/fs/cgroup/systemd': No such file or directory
    df: '/sys/fs/cgroup/cpuset': No such file or directory
    df: '/sys/fs/cgroup/cpu,cpuacct': No such file or directory
    df: '/sys/fs/cgroup/memory': No such file or directory
    df: '/sys/fs/cgroup/devices': No such file or directory
    df: '/sys/fs/cgroup/freezer': No such file or directory
    df: '/sys/fs/cgroup/net_cls': No such file or directory
    df: '/sys/fs/cgroup/blkio': No such file or directory
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/arch_root-image 15G 966M 14G 7% /
    dev 3.8G 0 3.8G 0% /dev
    run 3.8G 16K 3.8G 1% /run
    tmpfs 3.8G 0 3.8G 0% /dev/shm
    hugetlbfs 3.8G 0 3.8G 0% /dev/hugepages
    tmpfs 3.8G 0 3.8G 0% /tmp
    /dev/sda9 15G 966M 14G 7% /
    /dev/sda10 54G 180M 52G 1% /home
    /dev/sda8 512M 0 512M 0% /boot/efi
    udev 3.8G 0 3.8G 0% /dev
    shm 3.8G 0 3.8G 0% /dev/shm
    run 3.8G 16K 3.8G 1% /run
    tmp 3.8G 0 3.8G 0% /tmp
    /dev/mapper/arch_root-image 1.4G 650M 728M 48% /etc/resolv.conf
    on a previous installation I worked on archlinux grub2 but not windows8
    now only works windows because I forget set boot flag por my ESP partition
    >gdisk
    partition type EF00
    mkfs.vfat -F32 /dev/sdax
    but anyway my problem is with the file to load windows8

  • Problem with DAQmx and Real Time PCI-7041/6040E.

    Problem with DAQmx and Real Time PCI-7041/6040E.
    I have a problem with the Real Time card PCI-7041/6040E, I think it is properly installed because my software run with the traditional NI-DAQ. When I try to use the new DAQmx to acquire one signal, Labview doesn't see any device for de DAQ card 6040E.
    Information, I work on Windows XP and LabView v7.0.0 (NIDAQ RT v7.0.0, NI-Serial RT v2.5.2, NI-VISA v3.0.1 and NI-Watchdog v2.0.0).
    Could Labview RT run with new DAQmx ?
    What can I do to use DAQmx with PCI-7041/6040E?
    Thanks for your help !

    Hello,
    I refer to your posts because i am using the PCI 7041/6040E card as
    well but without any success to make it work. The problem I have
    already described in the following thread:
    http://forums.ni.com/ni/board/message?board.id=170&message.id=120198
    Would be nice if you had a look on it, maybe you can help me. BTW, the
    thread starts with a problem of someone else, the difficulties I
    encountered are to be found a little bit to the bottom of the thread's
    page.
    Thank you!
    Dirk Völlger
    Darmstadt
    Message Edited by ratschnowski on 07-28-2005 07:14 AM

Maybe you are looking for