Program enters infinite loop.

this is the first program i'm writing with sockets and is also a step towards making a chat application. my problem is that the program enters infinite loop.
package server;
import java.net.*;
import java.io.*;
class Server
    public static void main(String[] args) throws Exception
        ServerSocket ss = new ServerSocket(9090);
        Socket soc = ss.accept();
        BufferedReader in = new BufferedReader(new InputStreamReader(soc.getInputStream()));
        String str = in.readLine();
        while(str!="")
            System.out.println(str);
            str = in.readLine();
        soc.close();
        ss.close();
}this was the server - a seperate application. below is a part of the client - a seperate application
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        try
            InetAddress ip = InetAddress.getByName("127.0.0.1");
            Socket soc = new Socket(ip,9090);
            PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(soc.getOutputStream())),true);
            str_out = jTextArea2.getText();
            while(str_out!="")
                out.println(str_out);
                str_out = jTextArea2.getText();
            soc.close();
        catch(Exception e)
            System.out.println("Error sending message");
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        str_out = "";
        jTextArea2.setText(str_out);
    }  when i press button send (jButton1) the text from the text area jTextArea2 is supposed to go to the server and then the server should display it in its out put screen. i tried sending hello and the server went on printing hello continously.
pleas help.

String str = in.readLine();
while(str!="")
System.out.println(str);
str = in.readLine();
}You need to test for (str != null) above too, or instead of str != "".

Similar Messages

  • IdeaPad S400 enters infinite loop after installing Windows 7

    Hello,
    As the title says, my recently purchased computer fails to boot properly after installing the OS without a problem from a bootable USB. It starts normally with the boot screen, turns black, shuts down, and then starts all over again. I have not tampered with the bios (aside from the boot device priority), so I have no idea why this would happen at all. Any help would be greatly appreciated.

    Hi aleluja,
    Thanks For posting and welcome to the Lenovo Community,
    Am sorry to hear about the issue that you’re facing and I’d like to advise you to access the BIOS of the system and Return BIOS to the factory default settings by pressing on F9 and also please make sure that the security boot option is Disabled and then press on F10 to save and exit the settings and then try to Boot your system,
    If still the same you can try to install Windows 7 back again after resetting the BIOS,
    Hope the information helps. Let us know.
    Thanks and Best Regards,
    Soha
    Did someone help you today? Press the star on the left to thank them with a Kudo!
    If you find a post helpful and it answers your question, please mark it as an "Accepted Solution"! This will help the rest of the Community with similar issues identify the verified solution and benefit from it.
    Follow @LenovoForums on Twitter!

  • Write a program to terminate the infinite loop when i enter any key

    Hi ,please tell me the program to terminate the infinite loop when i enter any key in the keyboard

    DarrylBurke wrote:
    mreddy, it's good to see the aliens returned you to Earth, even if it took them 2 years 4 monthslol ...
    to the OP ... you cannot do it ... unless ... you envoke swings or awt and add keylisteners . the only other way to accomplish this is using 3rd party libraries , like Jcurses ...
    [http://javacurses.sourceforge.net/]
    more specifically you can use jcurses.system.InputChar class to do what you want ...
    another way to do it is my making your console(terminal) communicate with your program for every character that you press.
    on linux you can use the stty command.
    stty -icanon

  • NIO Selector.select() enters a 100% CPU infinite loop on interruption

    This issue is only reproducible in Windows.
    When a thread is calling Selector.select() and the other thread interrupts the selector thread, Selector.select() enters an infinite loop taking up CPU time.  All other JDKs I've tried including IBM 1.5 / 1.6, SUN 1.5 / 1.6 simply returned 0 when its interrupted.  I think JRockit needs to behave similarly, without 100% CPU consumption.  Here's the test code:
    import java.nio.channels.Selector;
    public class Main {
          public static void main(String[] args) throws Exception {
                  final Thread mainThread = Thread.currentThread();
                  final Selector s = Selector.open();
                  new Thread() {
                          @Override
                          public void run() {
                                      try {
                                                Thread.sleep(1000);
                                      } catch (InterruptedException e) {
                                                // Ignore.
                                      System.out.println("interrupt()");
                                      mainThread.interrupt();
                  }.start();
                  System.out.println("select()");
                  s.select(5000);
                  System.out.println("success");
                  s.close();
    Expected result:
            select()
            interrupt()
            success
    Actual result:
            select()
            interrupt()
            <stuck with 100% CPU consumption>
    Version:
            JRMC-3.0.3-1.5.0 - build R27.6.0-50_o-100423-1.5.0_15-20080626-2105-windows-ia32, compiled mode
            JRMC-3.0.3-1.6.0 - build R27.6.0-50_o-100423-1.6.0_05-20080626-2105-windows-ia32, compiled mode

    Hi,
    This looks like a bug. Please open a support ticket and request a patch if you need a fix asap. If you can wait we will fix this in an upcoming release. Thank you for your help

  • Memory requirement is continiously increased when i am running my application program in an infinite loop,after certain time it shows an error called low virtual memory

    memory requirement is continiously increased when i am running my application program in an infinite loop,after certain time it shows an error called low virtual memory

    What are you doing with your program. Lots of improper programming techniques can cause this - building arrays, concantanating strings, opening but not closing refrences, etc. Need more details or post your VI. Also, have you looked at "LabVIEW Performance and Memory Management"? It's part of the shipping documentation and available from Help>Search the LabVIEW Bookshelf.

  • Apps won't open :: Infinite loop btw CS6 programs and App. Mgr.

    Tried to open the following CS6 apps on MacOS X 10.7.5:
    Indesign - 8.0.2.413
    Photoshop - 13.0.4
    Illustrator  - 15.1.0
    And when I do an infinite loop occurs between the apps above TRYING to open, while the Application manager also tries to open (application icons bouncing up and down trying to activate).
    None of them actually open (i.e. no dialog box) and the only way to stop it is to force quit my computer.
    Had this for about 1 year and it just started happening. Please help!

    Found a better description of the problem online:
    "When trying to open an Adobe CS6 application, a crashing loop begins. The AAM opens and closes once per second in the Dock, along with the application I was attempting to open.  Because of the constant open and closing of these apps, it's almost impossible to get the mouse or keyboard to focus for enough time to do a force quit on either application, and a hard reboot is usually required to break out of the cycle. I had the entire suite uninstalled and reinstalled, but several weeks later, the issue resurfaced."
    I can't even uninstall the programs as the AAM will not even function!!!

  • How Can we stop the execution of java program which contain infinite loop

    Dear All,
    I create one .bat file which which execute the simple java program
    I write one java program which execute above .bat file using instance of Runtime Class of java
    It's work fine if java program which is executed by .bat file is simple(Which has normal termination)
    But if that program contain inifinte loop then that file will goes on executing untill I close it manually
    So i want a solution in java which close that bat file (command window ) which is in running condtion
    If there any solution please replay me
    I try to close that .bat file using destroy() ,stop() method of Process and Runtime , Thread Class
    but it did not give me correct output
    .bat file still running !!!!!!!!!
    Thanks in advance

    Why not use javaw.exe to make the app run so you don't need the dos window (which is presumably what you are actually talking about when you say bat file).

  • SQL stored procedure Staging.GroomDwStagingData stuck in infinite loop, consuming excessive CPU

    Hello
    I'm hoping that someone here might be able to help or point me in the right direction. Apologies for the long post.
    Just to set the scene, I am a SQL Server DBA and have very limited experience with System Centre so please go easy on me.
    At the company I am currently working they are complaining about very poor performance when running reports (any).
    Quick look at the database server and CPU utilisation being a constant 90-95%, meant that you dont have to be Sherlock Holmes to realise there is a problem. The instance consuming the majority of the CPU is the instance hosting the datawarehouse and in particular
    a stored procedure in the DWStagingAndConfig database called Staging.GroomDwStagingData.
    This stored procedure executes continually for 2 hours performing 500,000,000 reads per execution before "timing out". It is then executed again for another 2 hours etc etc.
    After a bit of diagnosis it seems that the issue is either a bug or that there is something wrong with our data in that a stored procedure is stuck in an infinite loop
    System Center 2012 SP1 CU2 (5.0.7804.1300)
    Diagnosis details
    SQL connection details
    program name = SC DAL--GroomingWriteModule
    set quoted_identifier on
    set arithabort off
    set numeric_roundabort off
    set ansi_warnings on
    set ansi_padding on
    set ansi_nulls on
    set concat_null_yields_null on
    set cursor_close_on_commit off
    set implicit_transactions off
    set language us_english
    set dateformat mdy
    set datefirst 7
    set transaction isolation level read committed
    Store procedures executed
    1. dbo.p_GetDwStagingGroomingConfig (executes immediately)
    2. Staging.GroomDwStagingData (this is the procedure that executes in 2 hours before being cancelled)
    The 1st stored procedure seems to return a table with the "xml" / required parameters to execute Staging.GroomDwStagingData
    Sample xml below (cut right down)
    <Config>
    <Target>
    <ModuleName>TransformActivityDim</ModuleName>
    <WarehouseEntityName>ActivityDim</WarehouseEntityName>
    <RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName>
    <Watermark>2015-01-30T08:59:14.397</Watermark>
    </Target>
    <Target>
    <ModuleName>TransformActivityDim</ModuleName>
    <WarehouseEntityName>ActivityDim</WarehouseEntityName>
    <RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName>
    <ManagedTypeViewName>MTV_Microsoft$SystemCenter$Orchestrator$RunbookAutomationActivity</ManagedTypeViewName>
    <Watermark>2015-01-30T08:59:14.397</Watermark>
    </Target>
    </Config>
    If you look carefully you will see that the 1st <target> is missing the ManagedTypeViewName, which when "shredded" by the Staging.GroomDwStagingData returns the following result set
    Example
    DECLARE @Config xml
    DECLARE @GroomingCriteria NVARCHAR(MAX)
    SET @GroomingCriteria = '<Config><Target><ModuleName>TransformActivityDim</ModuleName><WarehouseEntityName>ActivityDim</WarehouseEntityName><RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName><Watermark>2015-01-30T08:59:14.397</Watermark></Target><Target><ModuleName>TransformActivityDim</ModuleName><WarehouseEntityName>ActivityDim</WarehouseEntityName><RequiredWarehouseEntityName>MTV_System$WorkItem$Activity</RequiredWarehouseEntityName><ManagedTypeViewName>MTV_Microsoft$SystemCenter$Orchestrator$RunbookAutomationActivity</ManagedTypeViewName><Watermark>2015-01-30T08:59:14.397</Watermark></Target></Config>'
    SET @Config = CONVERT(xml, @GroomingCriteria)
    SELECT
    ModuleName = p.value(N'child::ModuleName[1]', N'nvarchar(255)')
    ,WarehouseEntityName = p.value(N'child::WarehouseEntityName[1]', N'nvarchar(255)')
    ,RequiredWarehouseEntityName =p.value(N'child::RequiredWarehouseEntityName[1]', N'nvarchar(255)')
    ,ManagedTypeViewName = p.value(N'child::ManagedTypeViewName[1]', N'nvarchar(255)')
    ,Watermark = p.value(N'child::Watermark[1]', N'datetime')
    FROM @Config.nodes(N'/Config/*') Elem(p)
    /* RESULTS - NOTE THE NULL VALUE FOR ManagedTypeViewName
    ModuleName WarehouseEntityName RequiredWarehouseEntityName ManagedTypeViewName Watermark
    TransformActivityDim ActivityDim MTV_System$WorkItem$Activity NULL 2015-01-30 08:59:14.397
    TransformActivityDim ActivityDim MTV_System$WorkItem$Activity MTV_Microsoft$SystemCenter$Orchestrator$RunbookAutomationActivity 2015-01-30 08:59:14.397
    When the procedure enters the loop to build its dynamic SQL to delete relevant rows from the inbound schema tables it concatenates various options / variables into an executable string. However when adding a NULL value to a string the entire string becomes
    NULL which then gets executed.
    Whilst executing "EXEC(NULL)" would cause SQL to throw an error and be caught, executing the following doesnt
    DECLARE @null_string VARCHAR(100)
    SET @null_string = 'hello world ' + NULL
    EXEC(@null_string)
    SELECT @null_string
    So as it hasnt caused an error the next part of the procedure is to move to the next record and this is why its caught in an infinite loop
    DELETE @items WHERE ManagedTypeViewName = @View
    The value for the variable @View is the ManagedTypeViewName which is NULL, as ANSI_NULLS are set to ON in the connection and not overridded in the procedure then the above statement wont delete anything as it needs to handle NULL values differently (IS NULL),
    so we are now stuck in an infinite loop executing NULL for 2 hours until cancelled.
    I amended the stored procedure and added the following line before the loop statement which had the desired effect and "fixed" the performance issue for the time being
    DELETE @items WHERE ManagedTypeViewName IS NULL
    I also noticed that the following line in dbo.p_GetDwStagingGroomingConfig is commented out (no idea why as no notes in the procedure)
    --AND COALESCE(i.ManagedTypeViewName, j.RelationshipTypeViewName) IS NOT NULL
    There are obviously other ways to mitigate the dynamic SQL string being NULL, there's more than one way to skin a cat and thats not why I am asking this question, but what I am concerned about is that is there a reason that the xml / @GroomingCriteria is incomplete
    and / or that the procedures dont handle potential NULL values.
    I cant find any documentation, KBs, forum posts of anyone else having this issue which somewhat surprises me.
    Would be grateful of any help / advice that anyone can provide or if someone can look at their 2 stored procedures on a later version to see if it has already been fixed. Or is it simply that we have orphaned data, this is the bit that concerns most as I dont
    really want to be deleting / updating data when I have no idea what the knock on effect might be
    Many many thanks
    Andy

    First thing I would do is upgrade to 2012 R2 UR5. If you are running non-US dates you need the UR5 hotfix also.
    Rob Ford scsmnz.net
    Cireson www.cireson.com
    For a free SCSM 2012 Notify Analyst app click
    here

  • Infinite loop error after using Java Sun Tutorial for Learning Swing

    I have been attempting to create a GUI following Sun's learning swing by example (example two): http://java.sun.com/docs/books/tutorial/uiswing/learn/example2.html
    In particular, the following lines were used almost word-for-word to avoid a non-static method call problem:
    SwingApplication app = new SwingApplication();
    Component contents = app.createComponents();
    frame.getContentPane().add(contents, BorderLayout.CENTER);I believe that I am accidentally creating a new instance of the gui class repeatedly (since it shows new GUI's constantly and then crashes my computer), possibly because I am creating an instance in the main class, but creating another instance in the GUI itself. I am not sure how to avoid this, given that the tutorials I have seen do not deal with having a main class as well as the GUI. I have googled (a nice new verb) this problem and have been through the rest of the swing by example tutorials, although I am sure I am simply missing a website that details this problem. Any pointers on websites to study to avoid this problem would be appreciated.
    Thanks for your time-
    Danielle
    /** GUI for MicroMerger program
    * Created July/06 at IARC
    *@ author Danielle
    package micromerger;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.swing.JFileChooser;
    import java.lang.Object;
    public class MGui
         private static File inputFile1, inputFile2;
         private static File sfile1, sfile2;
         private static String file1Name, file2Name;
         private String currFile1, currFile2;
         private JButton enterFile1, enterFile2;
         private JLabel enterLabel1, enterLabel2;
         private static MGui app;
         public MGui()
              javax.swing.SwingUtilities.invokeLater(new Runnable()
                   public void run()
                        System.out.println("About to run create GUI method");
                        app = new MGui();
                        System.out.println("declared a new MGui....");
                        createAndShowGUI();
         //initialize look and feel of program
         private static void initLookAndFeel() {
            String lookAndFeel = null;
         lookAndFeel = UIManager.getSystemLookAndFeelClassName();
         try
              UIManager.setLookAndFeel(lookAndFeel);
         catch (ClassNotFoundException e) {
                    System.err.println("Couldn't find class for specified look and feel:"
                                       + lookAndFeel);
                    System.err.println("Did you include the L&F library in the class path?");
                    System.err.println("Using the default look and feel.");
                } catch (UnsupportedLookAndFeelException e) {
                    System.err.println("Can't use the specified look and feel ("
                                       + lookAndFeel
                                       + ") on this platform.");
                    System.err.println("Using the default look and feel.");
                } catch (Exception e) {
                    System.err.println("Couldn't get specified look and feel ("
                                       + lookAndFeel
                                       + "), for some reason.");
                    System.err.println("Using the default look and feel.");
                    e.printStackTrace();
         // Make Components--
         private Component createLeftComponents()
              // Make panel-- grid layout
         JPanel pane = new JPanel(new GridLayout(0,1));
            //Add label
            JLabel welcomeLabel = new JLabel("Welcome to MicroMerger.  Please Enter your files.");
            pane.add(welcomeLabel);
         //Add buttons to enter files:
         enterFile1 = new JButton("Please click to enter the first file.");
         enterFile1.addActionListener(new enterFile1Action());
         pane.add(enterFile1);
         enterLabel1 = new JLabel("");
         pane.add(enterLabel1);
         enterFile2 = new JButton("Please click to enter the second file.");
         enterFile2.addActionListener(new enterFile2Action());
         pane.add(enterFile2);
         enterLabel2 = new JLabel("");
         pane.add(enterLabel2);
         return pane;
         /** Make GUI:
         private static void createAndShowGUI()
         System.out.println("Creating a gui...");
            JFrame.setDefaultLookAndFeelDecorated(true);
            //Create and set up the window.
            JFrame frame = new JFrame("MicroMerger");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         //Add stuff to the frame
         //MGui app = new MGui();
         Component leftContents = app.createLeftComponents();
         frame.getContentPane().add(leftContents, BorderLayout.WEST);
            //Display the window.
            frame.pack();
            frame.setVisible(true);
    private class enterFile1Action implements ActionListener
         public void actionPerformed(ActionEvent evt)
              JFileChooser chooser = new JFileChooser();
              int rVal = chooser.showOpenDialog(enterFile1);
              if(rVal == JFileChooser.APPROVE_OPTION)
                   inputFile1 = chooser.getSelectedFile();
                   PrintWriter outputStream;
                   file1Name = inputFile1.getName();
                   enterLabel1.setText(file1Name);
    private class enterFile2Action implements ActionListener
         public void actionPerformed(ActionEvent evt)
              JFileChooser chooser = new JFileChooser();
              int rVal = chooser.showOpenDialog(enterFile1);
              if(rVal == JFileChooser.APPROVE_OPTION)
                   inputFile2 = chooser.getSelectedFile();
                   PrintWriter outputStream;
                   file2Name = inputFile2.getName();
                   enterLabel2.setText(file2Name);
    } // end classAnd now the main class:
    * Main.java
    * Created on June 13, 2006, 2:29 PM
    * @author Danielle
    package micromerger;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.io.*;
    public class Main
        /** Creates a new instance of Main */
        public Main()
         * @param args the command line arguments
        public static void main(String[] args)
            MGui mainScreen = new MGui();
            //mainScreen.setVisible(true);
            /**Starting to get file choices and moving them into GPR Handler:
             System.out.println("into main method");
         String file1Name = new String("");
             file1Name = MGui.get1Name();
         System.out.println("good so far- have MGui.get1Name()");
        }// end main(String[] args)
    }// end class Main

    um, yeah, you definitely have a recursion problem, that's going to create an infinite loop. you will eventually end up an out of memory error, if you don't first get the OS telling you you have too many windows. interestingly, because you are deferring execution, you won't get a stack overflow error, which you expect in an infinite recursion.
    lets examine why this is happening:
    in main, you call new MGui().
    new MGui() creates a runnable object which will be run on the event dispatch thread. That method ALSO calls new MGui(), which in turn ALSO creates a new object which will be run on the event dispatch thead. That obejct ALSO calls new MGui(), which ...
    well, hopefully you get the picture.
    you should never unconditionally call a method from within itself. that code that you have put in the constructor for MGui should REALLY be in the main method, and the first time you create the MGui in the main method as it currently exists is unnecessary.
    here's what you do: get rid of the MGui constructor altogether. since it is the implicit constructor anyway, if it doesn't do anything, you don't need to provide it.
    now, your main method should actually look like this:
    public static void main( String [] args ) {
      SwingUtilities.invokeLater( new Runnable() {
        public void run() {
          MGui app = new MGui();
          app.createAndShowGUI();
    }// end mainyou could also declare app and call the constructor before creating the Runnable, as many prefer, because you would have access to it from outside of the Runnable object. The catch there, though, is that app would need to be declared final.
    - Adam

  • Why am I getting an infinite loop?

    I have a for loop that never stops as the question suggests. If the boolean expression is true the loop does not stop. I tried tracing the loop and still cant figure out the solution. Please help. The code where the error is below with comments where the error is encountered:
        public static void printGame()
             //DECLARING
             //User input, height of wall
             int height = 0;
             //User input, how much R2-D2 climbs each day
             int climb;
             //User input, how much R2-D2 slips each day
             int slip;
             //Count of how many days it takes for R2-D2 leaves
             int count = 1;
             //Total after each day which is total + climb - slip
             int total = 0; 
             //User input, play again option
             char plyagn;
             //Gameplay         
             System.out.println("Please type in the height of the wall");
             //Height input
             height = In.getInt();
             System.out.println("Please type in how much R2-D2 climbs each day");
             //Climb input
             climb = In.getInt();
             System.out.println("Please type in how much R2-D2 slips each day");
             //Slip input
             slip = In.getInt();
             //Evaluation       
             for( ; height != total; count++) //<----My ERROR which is an infinite loop that never exits
                  total = total + climb - slip;
                  System.out.println(total); //I tried tracing the error
                  System.out.println(height); //I tried tracing the error
              //Printing the result of the evaluation
             System.out.println("R2-D2 will leave on the " + count + " day");
             System.out.println("Press Enter to continue");
             In.getChar();
             clear();
             System.out.println("Do you want to play again? (y/n)");
             plyagn = In.getChar();
             //If statment, prints appropriate message if or if not to play again
             if(plyagn == 'y' || plyagn == 'Y')
                  printMenu();
             //If n or any other value end program
             else
                  printEnd();
        }//End of printGame method

    flounder wrote:
    Lets say th variables have these values
    height = 10
    climb = 4
    slip = 1 which effectively adds 3 to total at each step.
    So total is 0, 3, 6, 9, 12, 15, 18 etc
    Total will always be not equal to height.
    So change your condition. Also, why are you using a for loop instead of a while loop.Flounder, I was hoping you would answer my question as you always provide good answers. Continuing, I feel so dumb for missing that error. Oh and as for using the for loop instead of a while loop is something i was meaning to change. Anyhow, Thank You.

  • A problem with infinite loop

    Hi there! My program has to get data on two species in any order and respond by telling how many years it will take for the species with lower population outnumber the species that starts with higher population. If the species with the smaller population never outnumbers the species with the higher population I'll get an infinite loop. What is the right approach here?
    Thanks.
    public class Species
    private String name1;name2
    private int population1, population2;
    private double growthRate1, growthRate2;
    public void readInput( )
    System.out.println("What is the first species' name?");
    name1 = SavitchIn.readLine( );
    System.out.println("What is the population of the species?");
    population1 = SavitchIn.readLineInt( );
    while (population1 < 0)
    System.out.println("Population cannot be negative.");
    System.out.println("Reenter population:");
    population1 = SavitchIn.readLineInt( );
    System.out.println(
    "Enter growth rate (percent increase per year):");
    growthRate1 = SavitchIn.readLineDouble( );
    ystem.out.println("What is the second species' name?");
    name2 = SavitchIn.readLine( );
    System.out.println("What is the population of
    the species?");
    population2 = SavitchIn.readLineInt( );
    while (population2 < 0)
    System.out.println("Population cannot be negative.");
    System.out.println("Reenter population:");
    population2 = SavitchIn.readLineInt( );
    System.out.println(
    "Enter growth rate (percent increase per year):");
    growthRate2 = SavitchIn.readLineDouble( );
    public void writeOutput( )
    System.out.println("Name of the species' = " + name1);
    System.out.println("Population = " + population1);
    System.out.println("Growth rate = " + growthRate1 + "%");
    System.out.println("Name of the species' = " + name2);
    System.out.println("Population = " + population2);
    System.out.println("Growth rate = " + growthRate2 + "%");
    public void OutnumbersPopulation()
    double max, min;
    int years=0
    if(population1>population2)// this is to determine which population is smaller
    max=population1;
    min=population2;
    else if (population2>population1)
    max=population2;
    min=population1;
    while ((years > 0) && (min <=max))//This could be an infinite loop if min never outnumbers max
    min= (min +
    (growthRate/100) * min);
    max=(max + (growthRate/100) * max);
    years ++;
    System.out.println("The species with the lower population will outnumber the species with higher population
    in" + (years+1) + "years");

    Cross post. original is in "New to Java Technology".

  • Trouble transferring and authorizing- In an Infinite loop

    I am stuck in an infinite loop. Upon transferring from iphone to my laptop it says I need to authorize computer, my old username comes up, i enter the correct one and it says computer is already authorized and it loops back around.

    have the reading loop in a different class which will have its own Thread running aside from the main program's thread. This way your application will do both at once :)

  • Installing Elements 13 - infinite loop

    I purchased Elements 13 and Premiere Elements 13 and went to install Elements from the DVD.  It asked for my Login/Passwd and
    after entering them, the installer goes into an infinite loop with the 4 clockwise squares.  How do I get it to install?
    Thanks.

    download the installation files and use your serial numbers to activate:
    Downloads available:
    Suites and Programs:  CC 2014 | CC | CS6 | CS5.5 | CS5 | CS4 | CS3
    Acrobat:  XI, X | 9,8 | 9 standard
    Premiere Elements:  13 | 12 | 11, 10 | 9, 8, 7 win | 8 mac | 7 mac
    Photoshop Elements:  13 |12 | 11, 10 | 9,8,7 win | 8 mac | 7 mac
    Lightroom:  5.6| 5 | 4 | 3
    Captivate:  8 | 7 | 6 | 5
    Contribute:  CS5 | CS4, CS3
    Download and installation help for Adobe links
    Download and installation help for Prodesigntools links are listed on most linked pages.  They are critical; especially steps 1, 2 and 3.  If you click a link that does not have those steps listed, open a second window using the Lightroom 3 link to see those 'Important Instructions'.

  • Neep help with infinite loop! Please Help

    I currently have a program that allows a user to enter a password protected site and it will return all the images on that page.
    I�m trying to allow the user to type in the root URL, i.e. http://stage.diabetescontrolforlife.com/ and have the program pull all the images in all of the child directories. i.e. http://stage.diabetescontrolforlife.com/tool.aspx
    I got an inner class similar to the one pulling the <IMG> tag, that pulls the <A> tag. The class adds all the links to a linkList Arraylist. In my main method I call image.getInfo(image.getLinkList()); hoping that I can just pass all the links back through the program and find all the <IMG> tags.
    The problem is that, I get the desired output but it displays in an infinite loop, and the program never ends as it searches linkList over and over for <IMG> tags.
    So, I tried to adding two different Do, While loops.
    Main Method:
    do
                image.getInfo(image.getLinkList());
                test=1;
    }while(test != 1);This one does not change the output. Infinite loop continues.
    Inner Class:
    HTMLEditorKit.ParserCallback callback;
    callback = new HTMLEditorKit.ParserCallback ()
               public void handleStartTag(HTML.Tag tag, MutableAttributeSet attributes, int position)
                            do
                                        if (tag == HTML.Tag.A)
                                                    link = (String)attributes.getAttribute (HTML.Attribute.HREF);
                                                   if(link != null && !link.startsWith("javascript") && !link.startsWith("#") &&        link.startsWith("/"))
                                                                link = root + link;
                                                                linkList.add(link);
                                                               test=1; 
                    }while(test!=1);
    public void handleSimpleTag (HTML.Tag tag,MutableAttributeSet aset,int pos)
    {if (tag == HTML.Tag.IMG )This one never allows the first URL to be checked, and the program just sits there.
    Do you see anything I�m doing wrong, or anyway I can stop the infinite loop?
    I think the problem is that both of the searching tag classes are inner classes but I don�t know how to make them their own classes without messing up the whole password checking.
    Any advice would be helpful!

    HTMLEditorKit.ParserCallback callback;
              callback = new HTMLEditorKit.ParserCallback ()
                public void handleSimpleTag (HTML.Tag tag,MutableAttributeSet aset,int pos)
                        if (tag == HTML.Tag.IMG )
                            src = (String)
                                         aset.getAttribute (HTML.Attribute.SRC);
                            alt = (String)
                                         aset.getAttribute (HTML.Attribute.ALT);
                            height = (String)
                                         aset.getAttribute (HTML.Attribute.HEIGHT);
                            width = (String)
                                         aset.getAttribute (HTML.Attribute.WIDTH);
                            //System.out.println("SRC = " + src);
                            //System.out.println("ALT = " + alt);
                            System.out.println("ROOT2"+root);
                            System.out.println("SRC1"+src);
                            if(src.startsWith("http"))
                            else
                            if(src.startsWith("../"))
                                src = src.replace("../", "");
                                src = root +"/"+ src;
                            else
                            if(src.startsWith("/"))
                                src = root + src;
                            else
                                src = root +"/"+ src;
                            System.out.println("SRC2"+src);
                            altList.add(alt);
                            srcList.add(src);
                            heightList.add(height);
                            widthList.add(width);
                            currentUrl.add(passUrl);
                            if(alt == null)
                                altPresent.add("No");
                            else
                                altPresent.add("Yes");
                            URI uri = null;
                            try
                                if (!uriBase.toString ().endsWith ("/") &&
                                    !src.startsWith ("/"))
                                    src = "/" + src;
                              uri = new URI (src);
                                uri = uriBase.resolve (uri);
                                System.out.println("URL"+passUrl);
                                System.out.println ("uri being " +
                                                    "processed ... " + uri);
                                System.out.println("ROOT3"+root);
                            catch (URISyntaxException e)                           
                               System.err.println ("Bad URI");
                               return;
                            // Convert the URI to a URL so that its input
                            // stream can be obtained.
                            URL url = null;
                            try
                                url = uri.toURL ();
                            catch (MalformedURLException e)
                              System.err.println ("Bad URL");
                                return;
                            //InputStream is;
                            //String filename = url.getFile ();
                            //int i = filename.lastIndexOf ('/');
                            //if (i != -1)
                            //    filename = filename.substring (i+1);
                    @Override
               public void handleStartTag(HTML.Tag tag, MutableAttributeSet attributes, int position)
                            //while(test!=1)
                                System.out.println("TEST"+test);
                            if (tag == HTML.Tag.A)
                                link = (String)
                                             attributes.getAttribute (HTML.Attribute.HREF);
                                if(link != null && !link.startsWith("javascript") && !link.startsWith("#") && link.startsWith("/"))
                                    /*if(link.startsWith("/"))
                                        link = root + link;
                                    else
                                    if(!link.startsWith("http"))
                                        link = root +"/"+ link;
                                    //if(link.contains(root))
                                        link = root + link;
                                       test=1;
                                          linkList.add(link);
              try
                         HttpURLConnection urlConn = null;
                        //URL url = new URL(server);
                        // Build the string to be used for Basic Authentication <username>:<password>
                        String userPassword =  "testmlr" + ":" + "stage1-7000";
                        // Base64 encode the authentication string
                        String encoding = new sun.misc.BASE64Encoder().encode (userPassword.getBytes());
                        //URLConnection
                        urlConn = (HttpURLConnection) url.openConnection();
                        // Enable writing to server ( to write request )
                        urlConn.setDoOutput(true);
                        // Enable reading from server ( to read response )
                        urlConn.setDoInput(true);
                        // Disable cache
                        urlConn.setUseCaches(false);
                        urlConn.setDefaultUseCaches(false);
                        // Set Basic Authentication parameters
                        urlConn.setRequestProperty ("Authorization", "Basic " + encoding);
                       // test(server);
                        BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
                  new ParserDelegator().parse(in, callback, false);
                  System.out.println(in + "test123412341234");
              catch (ChangedCharSetException e)
                  String csspec = e.getCharSetSpec ();
                 Pattern p = Pattern.compile ("charset=\"?(.+)\"?\\s*;?",
                                             Pattern.CASE_INSENSITIVE);
                  Matcher m = p.matcher (csspec);
                  String charset = m.find () ? m.group (1) : "ISO-8859-1";
                  // Read and parse HTML document using appropriate character set.
    public ArrayList getLinkList()
           return linkList;
       }

  • Infinite loop problem

    Hi there,
    This is the second time I have posted this problem, as the last solution I was offered did not seem to work. Here is the problem:
    I have written a method to search through a text file for a word and replace it with another word. That word can either be on its own in the document or as part of another word. So, if the search word was "foot" and the replace word was "dog", the word "football" in the document would become "dogball".
    This method works fine, except for when the replace word is the same as the search word. Basically, if someone searched for "dog" and wanted to replace it with "dog dog" or even just "dog", the program goes into an infinite loop. I understand why it is doing this, but I don't know how to prevent it from happening.
    Now, to make it worse I have to stick to this array style structure and method of solving the problem. I know there is a way to do this by building temporary strings and then concatenating them at the end and returning them to their previous position in the array. The reason I know this is because a friend of mine has managed it. She also happens to be a girl.
    So, I am asking you all to assist in defending men's intelligence by helping me see where I am going wrong in this method. Please.
    Here is the method:
    // Search the document for a string and replace it with another string        
         public String [] SearchReplace() {
              // Declare variables to be used in the method
              String SecondSubstring;
              String FirstSubstring;
              int ReplaceNumber = 0;
              // Loop through the lines of text stored as strings contained in the array
              for (int i = 0; i < NumberOfLines; i++) {
                        // As long as the string contains an instance of the search string, run the method                    
                        while (StrArray.indexOf(SearchW) >= 0) {
                             // Make a string of all the characters after the search word
                             SecondSubstring = StrArray[i].substring(StrArray[i].indexOf(SearchW) + SearchW.length());
                             // Make a string of all the characters before the search word
                             FirstSubstring = StrArray[i].substring(0, StrArray[i].indexOf(SearchW));
                             // Concatenate FirstSubstring with the replace word to make a new string
                             String FirstHalf = FirstSubstring.concat(ReplaceW);
                             // Concatenate the new string with SecondSubstring to make the whole replaced string
                             String FullString = FirstHalf.concat(SecondSubstring);
                             // Put this altered string back to its original place in the array
                             StrArray[i] = FullString;
                             // Increment ReplaceNumber to count the replacements made
                             ReplaceNumber++;
              // Print the numbers of replacements made
              System.out.println("\nA total of " + ReplaceNumber + " changes made.\n");
              // Display the searched and replaced contents of the file
              return StrArray;
    Any suggestions, pointers or solutions would be much appreciated.
    Thanks very much.

    Doing it the "old fashioned" way:
    You need to keep track of a "from index" so you don't search through parts of the string you've already replaced:
           public static void main(String args[]) {          
              try {     
                   String[] lines = new String[] {
                        "the dog went up the dog hill",
                        "all dogs go to dog heaven",
                        "the dogball takes place on 3rd april"
                   lines = replace(lines, "dog", "dog dog");
                   for (int i = 0; i < lines.length; i++) {
                        System.out.println(lines);
              } catch (Exception e) {
                   e.printStackTrace();
         private static String[] replace(String[] lines, String searchWord, String replaceWord) {
              if (searchWord.equals(replaceWord)) return lines; // nothing to do          
              for (int i = 0; i < lines.length; i++) {
                   int fromIndex = 0; // from index to do indexOf
                   String line = lines[i];
                   while (line.indexOf(searchWord, fromIndex) != -1) {
                        final int index = line.indexOf(searchWord, fromIndex);
                        line = line.substring(0, index) + replaceWord + line.substring(index + searchWord.length());
                        fromIndex = (line.substring(0, index) + replaceWord).length();
                   lines[i] = line; // replace
              return lines;

Maybe you are looking for

  • Time capsule losing internet connection

    Hey there, I've read other people with similar issues, but haven't found a solid resolution yet. Hoping you awesome Mac folks can help me out. It's slightly confusing, but please let me know what you think. Sorry this is long, just trying to give the

  • New computer ?? on how to move library to new computer

    I have done a search and followed some directions regarding this. But I'm a complete dummy when it comes to this. I'm hoping for some gently advice :-)) I have a new computer and want to move all my itunes to the new computer since it is faster. My n

  • What's wrong with my device?  It does not allow me to make calls with Skype or Viber...  Can someone help?

    What's wrong with my device?  It does not allow me to make calls with Skype or Viber...  Can someone help?

  • Xorg. Somethings Just not right...

    Ok. So I spent about 2 hours trying to figure out why I couldn't "startx" after installing xorg and my ati drivers.  Now it seems I have a strange problem. I installed fluxbox (via pacman -Sy fluxbox fluxconf menumaker) and added "exec startfluxbox"

  • Enabled validity period at VK13

    Hi all , i view v/04 for change condition table. i check this table 616.. its not ticked with validity period and woth release status. and both of it disabled. how i can enabled this checkbutton to allow me to key in the validity period?