# 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;
System.out.println("What is the first species' name?");
System.out.println("What is the population of the species?");
while (population1 < 0)
System.out.println("Population cannot be negative.");
System.out.println("Reenter population:");
System.out.println(
"Enter growth rate (percent increase per year):");
ystem.out.println("What is the second species' name?");
System.out.println("What is the population of
the species?");
while (population2 < 0)
System.out.println("Population cannot be negative.");
System.out.println("Reenter population:");
System.out.println(
"Enter growth rate (percent increase per year):");
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".

### Similar Messages

• Problem with infinitive loop for a socket listening

I want my server program to respond different clients by means of listening the socket via a thread. If I write the thread as a different class j2sdk1.4.0 gives a compile error, but as a method in the class it works well. Will you please show me the way how to use them as separete classes. Thanks in advance.
import java.io.*;
import java.net.*;
import java.sql.*;
public class MyServer {
private ServerSocket s;
private final int PORT=8888;
public void MyServer(){
try{
s=new ServerSocket(PORT);
System.out.println("Server started to listen..");
try{
while(true){
}catch(Exception ex){ex.printStackTrace();}
}catch(Exception ex){
System.err.println("Server failed!"+ex.getMessage());
finally{
try{
s.close();
}catch(Exception ex){
ex.printStackTrace();
AND MY MAINTHREAD CLASS IS AS BELOWS:
import java.io.*;
import java.net.*;
import java.sql.*;
public Socket socket;
private PrintWriter out;
private int index;
private String countryName;
private String countryCode;
private Connection con;
private final String url="jdbc:odbc:MyDB";
private CountryEnterence conEnt;
this.socket=socket;
start();
public void run() {
try{
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
}catch(IOException ex){
ex.printStackTrace();
switch(index){
case(1001):
System.out.println("New entry request");
makeConnection();
int r=conEnt.CountryEnterence(con,countryName,countryCode);
if(r==1){out.println("Country "+countryName+" is added to database");
}else{out.println(countryName+" is not added to database");}
releaseConnection();
break;
default:out.println("Operation can not continue");
/*************DATABASE CONNECTION***************/
public void makeConnection(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(java.lang.ClassNotFoundException ex){
System.out.println("Connection to database is failed: "+ex.getMessage());
try{
con=DriverManager.getConnection(url,"","");
}catch(SQLException ex){ex.printStackTrace();
public void releaseConnection() {
try{
con.close();
}catch(SQLException ex){ex.printStackTrace();
THE ERROR MESSAGE I GET IS AS BELOWS:
MyServer.java:20:cannot resolve symbol
location:class MyServer
Any help will be appriciated.
Regards,
Dirgen

1. public void MainThread(Socket socket) : Procedure??
I think i would use the constructor approach. (2.).

• Quick Migrate Creates a Trigger with Infinite Loop

Quick Migrate did a good job at nicely converting my MS SQL Database to Oracle. The only problem that I have is triggers. I have a table with the companies and when the table is just created and there are no rows in the table, on the very first insert it goes into a constant loop. There is no code I have altered after the migration has been completed.
So, there is:
table: RA_COMPANY
sequence: SEQ_RA_COMPANY_ID
trigger: TRG_RA_COMPANY_ID
table has no rows, trigger has been compiled and sequence hasn't been accessed so on the first insert, the trigger should put 1 into the newly added row. Here is the migration code for the trigger:
CREATE OR REPLACE TRIGGER TRG_RA_COMPANY_ID BEFORE INSERT OR UPDATE ON RA_COMPANY
FOR EACH ROW
DECLARE
v_newVal NUMBER(12) := 0;
v_incval NUMBER(12) := 0;
BEGIN
IF INSERTING AND :new.ID IS NULL THEN
SELECT SEQ_RA_COMPANY_ID.NEXTVAL INTO v_newVal FROM DUAL;
-- If this is the first time this table have been inserted into (sequence == 1)
IF v_newVal = 1 THEN
--get the max indentity value from the table
SELECT max(ID) INTO v_newVal FROM RA_COMPANY;
v_newVal := v_newVal + 1;
--set the sequence to that value
LOOP
EXIT WHEN v_incval>=v_newVal;
SELECT SEQ_RA_COMPANY_ID.nextval INTO v_incval FROM dual;
END LOOP;
END IF;
-- assign the value from the sequence to emulate the identity column
:new.ID := v_newVal;
END IF;
END;
ALTER TRIGGER TRG_RA_COMPANY_ID ENABLE;
/and on the first insert, the loop that is in the middle will be an infinite loop.
I do need only the inserts and I removed the UPDATE part and the loop itself but I am just wondering why is migration process creating this loop.
thanks

Hi Tridy,
I look into this for you.
I can see that this line
SELECT max(ID) INTO v_newVal FROM RA_COMPANY;
Is going to cause an issue if there are no rows.
I wonder if
SELECT NVL(max(ID),0) INTO v_newVal FROM RA_COMPANY;
Solve the issue?
Ill do some tests latter today and get back to you.
Regards,
Dermot.

• Need help with infinite loop in recovery mode in Creative Zen 20

hi,
I'm having this problem with my Creative Zen 20 GB:
When I turned it on, it goes immediately to the rescue/recovery mode. Not sure why. Will do that even when I reset the device.
So, I selected cleanup. After cleanup, it remained showing the menu of the recovery mode. I selected reboot. After reboot, it went back to the rescue/recovery mode. And it goes on and on like an infinite loop.
Finally, I decided to do a formatAll. Again, it remained in the recovery mode menu after the formatAll action. After reboot, it again went back to the rescue/recovery mode.
I have never updated the firmware. So, I thought maybe that will help. However, when I connected the device to my PC, the device went to rescue/recovery mode and the PC could not detect the device connected via USB. In short, I am currently not able to do anything at all with the device except charging it.

huggiebear wrote:
I connected the device to the PC and after the PC tried to load the library, it said "Player is not connected".
What library are you loading? After you have run that reload os option, you need to connect the player to the computer and run the firmware update software. If you haven't download that, you can go to the download section and download it. If all else fail, the player is probably faulty and you would need to get in contact with Customer Support then.
Jason

• Qsm pc, problem with stop loop

Hello,
i tested queue producer/consument with event case, but i have problem with stop the both loop, can you help me with attachment ?
Attachments:
queue_mereni_1.zip ‏46 KB
Global_queue.zip ‏3 KB

i had problem with upload *.vi (some mistake), so when a upload *.zip it was ok, but i do not know why..
please, when i put time out constatn, so when i push "stop" then both loops end - it is ok BUT:
when i push "stop 2" button (for the second loop) so there is error (in attachment), please do you know why?
i am sorry for a lot of questions but i try understand it..
thank you
Attachments:
qsm.jpg ‏31 KB

• Problem with a loop

Hello All
I'm working on a Flash Gallery and I'm having some issues
with a loop and it's probably something simple I don't know so I
thought I'd see if someone can help me.
the problem is that once the thumbnail panel is populated the
image I want to display from a rollover is no longer defined. As I
mentioned I was hoping someone could shed some light on this.
[code]
// create the thumbnail panel
var i = -1;
while(++i<thumbList.length) {
name = "item"+i;
thumbs_mc.duplicateMovieClip(name,i);
this[name]._x = i*spacing;
this[name].contentPath = "children/" + thumbList
// show the larger pic on rollover
this[name].onRollOver = function() {
picture.contentPath = "children/" + thumblist;
[/code]
by using this I get an error of: "error opening
URL...undefined"

mark2685 wrote:
Well, the array of student objects is larger than 2, there are about 6 students so it would have to get the highest from TestScore 1 and the lowests from TestScore 2 out of all of the students, not just those 2. And I want the entire object stored in the chessTeam array. Does this make sense?No you're not reading my code right (BTW - add an open brace on the for loop top and set score2 to 101), or else I'm not understanding you requirements correctly. The student array can hold as many Students as needs be. You stated that you have only two scores that you care about and so that's the 1 and the 2. Based on the Student class you've shown us, this should work, but you'll have to try it before you know.

• Probably simple problem with while loops

I was programming something for a CS class and came across a problem I can't explain with while loops. The condition for the loop is true, but the loop doesn't continue; it terminates after executing once. The actual program was bigger than this, but I isolated my problem to a short loop:
import java.util.Scanner;
public class ok {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String antlol = "p";
while(antlol == "p" || antlol == "P"){
System.out.println("write a P so we can get this over with");
antlol = scan.nextLine();
//it terminates after this, even if I type "P", which should make the while condition true.
}

Thanks, that worked.
I think my real problem with this program was my CS
teacher, who never covered how to compare strings,Here's something important.
This isn't just about comparing Strings. This applies to comparing ANY objects. When you use == that compares to see if two references refer to the same instance. equals compares objects for equality in the sense that equality means they have equal "content" as it were.

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
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)
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.

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);
if(alt == null)
else
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)
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)
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)
attributes.getAttribute (HTML.Attribute.HREF);
else
test=1;
try
HttpURLConnection urlConn = null;
//URL url = new URL(server);
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);
urlConn.setDoInput(true);
// Disable cache
urlConn.setUseCaches(false);
urlConn.setDefaultUseCaches(false);
// Set Basic Authentication parameters
urlConn.setRequestProperty ("Authorization", "Basic " + encoding);
// test(server);
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.
}

• A problem with for loop..

i have a problem with this code :
int [] P = new int [M.length];
System.out.println(P[0]+" "+P[15]);
for (int i = 0 ; i < P.length ; i++){
for (int j = i + 1 ; j < P.length ; j++){
if (j == (P.length - 1) && M [ i ] != M [ j ]){
P [ i ] = M [ i ] ;
else if ( M [ i ] != M [ j ] ) continue ;
else break;
for (int i = 0 ; i < P.length ; i++){
System.out.println(P [ i ]);
this code to copy distinct values in array M and print them into array P
M and P are both of size 16
the problem is the previous code doesn't work for P[15]
and i don't know way
if i have in M {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
P will be {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0}
could any body help ?

I am sorry, but you are not done. May-be your code does what it is supposed to do but it is hard to understand. An important part of programming is not just to get your code to work, but to write code that is easily maintainable. You are probably quite new programming and I do not want to discourage you. Keep working hard and it will come.
You almost had the solution a while back:
int [] P = new int [M.length];
System.out.println(P[0]+" "+P[M.length]);
boolean unique;
for (int i = 0 ; i < P.length ; i++){
// All non-zero entries in P with index less than i are unique in M.
unique = true; //Assume M[i] unique until contrary has been proven
for (int j = 0 ; j < P.length ; j++){
if (i != j && M[i] == M[j]) { //found another entry in M with the same value as M[i]
unique=false;
break;
if (unique) { // M[i] is unique in M.
P[i] = M;
for (int i = 0 ; i < P.length ; i++){
System.out.println(P [ i ]);
}This code executes in time O(n^2). It is possible to achieve O(nlog(n)) by
1) copy M into P
2) sort P
3) iterate through P and set duplicates to 0.

Hey I had my Mac for awhile now (Mac Mini) and I just upgraded to Leopard a few day ago. I'm having problems transferring loops onto the loop index..I tried the drag and drop and sometimes only a few get through but not all. And when I try again a prompt comes up saying there is already a folder with that name...etc. Is there a solution to get all of my loops onto the loop index. Im pretty new to GB and I dont know the best way..help plz!

If you want to record multiple audio tracks, you have to shift-click on each record button and make sure both are on different inputs.

I am having quite a bit of trouble with a program im working on. What i am doing is reading files from a directory in a for loop, in this loop the files are being broken into words and entered into a while loop where they are counted, the problem is i need to count the words in each file seperately and store each count in an array list or something similar. I also want to store the words in each file onto a seperate list
for(...)
//Go through each line of the first file
while(matchLine1.find()) {
CharSequence line1 = matchLine1.group();
//Get the words in the line
String words1[] = wordBreak.split(line1);
for (int i1 = 0, n = words1.length; i1 < n; i1++) {
if(words1[i1].length() > 0) {
int count= 0;
count++;
}This is what i have been doing, but with this method count stores the number of words in all files combined, not each individual file, and similarly list1 stores the words in all the files not in each individual file. Does anybody know how i could change this or what datastructures i could use that would allow me to store each file seperately. I would appreciate any help on this topic, Thanks!

Don't try to construct complicated nested loops, it makes things a
tangled mess. You want a collection of words per file. You have at least
zero files. Given a file (or its name), you want to add a word to a collection
associated with that file, right?
A Map is perfect for this, i.e. the file's name can be the key and the
associated value can be the collection of words. A separate simple class
can be a 'MapManager' (ahem) that controls the access to this master
map. This MapManager doesn't know anything about what type of
collection is supposed to store all those words. Maybe you want to
store just the unique words, maybe you want to store them all, including
the duplicates etc. etc. The MapManager depends on a CollectionBuilder,
i.e. a simple thing that is able to deliver a new collection to be associated
with a file name. Here's the CollectionBuilder:public interface CollectionBuilder {
Collection getCollection();
}Because I'm feeling lazy today, I won't design an interface for a MapManager,
so I simply make it a class; here it is:public class MapManager {
private Map map= new HashMap(); // file/words association
CollectionBuilder cb; // delivers Collections per file
// constructor
public MapManager(CollectionBuilder cb) { this.cb= cb; }
// add a word 'word' given a filename 'name'
public boolean addWord(String name, String word) {
Collection c= map.get(name);
if (c == null) { // nothing found for this file
c= cb.getCollection(); // get a new collection
map.put(name, c); // and associate it with the filename
return c.add(word); // return whatever the collection returns
// get the collection associated with a filename
public Collection getCollection(String name) { return map.get(name); }
}... now simply keep adding words from a file to this MapManager and
retrieve the collections afterwards.
kind regards,
Jos

• Problem with one loop in another one

When I drag and move cursor, X scale position will be show below. And then I click “add data in array”, the data should be put into array. I can move cursor again to add the second , the third ….into array.
My problem is:
In block diagram, once loop2 is outside of loop 1, it works. But I really want loop2 is in loop1 regarding to the rest part of the program. However, we I move loop2 into loop1, when I move cursor, nothing happens.
Thank you very much
Liming
Attachments:
yxxx.vi ‏29 KB

Hey, no need to make it so complicated.  Just add an indicator on the CursLoc.X wire in the  "0 To 5 MHz": Cursor Move  case.
1) The indicator does not react because you are still within the inner while loop.  It will not change until that loop completes. I.e. the stop button is pressed.
2) Similarly, the stop 2 button will press, but nothing will happen until the inner loop is done.
Generally, when I am using an event structure, I try to keep all the changing UI inputs and outputs in the same while loop with the event structure, if not in the event structure itself.  Local variables and property nodes can get the job done, but they are inefficient and can be difficult to debug.  As I am sure you are discovering
Message Edited by jasonhill on 04-07-2006 12:40 PM
Attachments:
cursor position indicator.PNG ‏7 KB

• Problem with animation loop in AS3

I'm having a problem doing an animation loop (a walk cycle in
this case) in CS3. I never had this problem in Studio 8 and am
wondering if I've gone crazy or if something has changed in CS3.
The animation cycle works fine so long as I have it loop
without using ActionScript, but when I try to loop it using
gotoAndPlay it skips the last frame (i.e., the frame that the code
is on). I tried adding an extra frame at the end and placing the
code on it... it works a bit better, but there's still a bit of odd
timing during the looping.
Interestingly, when I save the fla as a Studio 8 file, it
works fine (if I include that extra frame at the end). I may be
misremembering, but it seemed to me that Studio 8 didn't require
that extra frame before CS3.
Has anyone else seen this? Anyone have a solution to share
(I'm planning to use ActionScript3, so saving as Studio 8 won't
solve my problems)?

Sim-Enzo,
> Interestingly, when I save the fla as a Studio 8 file,
it works
> fine (if I include that extra frame at the end). I may
be
> misremembering, but it seemed to me that Studio 8 didn't
> require that extra frame before CS3.
It shouldn't require that extra frame, but I wonder if
you've somehow
configured your FLA's publish settings for a version of
ActionScript you're
not actually using.
> Has anyone else seen this? Anyone have a solution to
share
> (I'm planning to use ActionScript3, so saving as Studio
8
> won't solve my problems)?
If your file works fine in Flash 8, then you must be using
ActionScript
2.0 (or lower) for the time being. Based on what you've
described, I can't
imagine what's going awry. Can you make that FLA available
online
somewhere? See if you can reproduce this issue with a
simplified version,
in case your company's policies (or whatever reason(s)) keep
you from
I'll take a look.
David Stiller
Dev blog,
http://www.quip.net/blog/
"Luck is the residue of good design."

• Problem with multiple loops

Hi all,
I recently wrote my first VI for a soil consolidation test, which reads voltage measurements from an LVDT, keeps a moving average, and records the LVDT measurements versus time an XY graph.  Everything is contained in a while loop with a stop button and works just fine.  However,I'm having some trouble scaling this approach up for multiple LVDT measurements at once.  What I want to do is this:
I have a while loop with a relatively short time delay that reads all channels in my SCC system at once.  My DAQ Express VI is set to acquire 1 data point on demand.  Then I send the dynamic data type wire out of the loop and convert the data for each channel to a different scalar value.
Next, I have another while loop for EACH channel/consolidation test.  I'm doing this because I want each loop to have the potential cycle at a different rate, depending on the soil type I'm testing on that particular LVDT.  For example, on Test 1, I may want to acquire a point every half second, whereas for Test 2 I only want a point every 5 minutes.  I'd assumed the best way to do that would be to have ONE DAQ VI set to acquire all channels at a relatively high frequency (as I mentioned before), and then have each test go "get" the appropriate reading when it needs one.  I don't think I want to use a queue, because I may be skipping quite a few data points in between the ones I actually care about.
This is the approach I'd thought up, but the concept could be completely wrong.  To make a long story short, I want to acquire time elapsed/voltage data for 5-6 different channels at different rates.  I want each channel/test to be contained in a different loop so that I can compute individual moving averages for each one.
My problem is getting the multiple while loops to work with one another.  My 'secondary' loops for the individual channels don't seem to be cycling.  If I put a probe on the data tunnels, I get nothing passing out of the first loop containing the DAQ Express VI.  However, everything within that 'primary' loop works just fine.  If anyone has any suggestions, I'd greatly appreciate it.

Here's what I had in mind (LabVIEW 7.0).
Message Edited by altenbach on 04-26-2006 01:25 PM
LabVIEW Champion . Do more with less code and in less time .
Attachments:
SampleFewer.vi ‏53 KB
SampleFewer.png ‏9 KB

• DVD problem with missing loops, instruments

(trying to get a helpful subject there for those searching for answers)
the fact that the loops are greyed out and instruments missing in new garagebands is well known. so is the solution of installing from DVD. i cant seem to get that to work for my high school music class.
back story is that every student has a macbook (yes i know.. amazing). thing is, most students give their macs to the IT department to get their machines 'set up' and the IT department collects their DVDs. i borrowed a bunch of those DVDs from the IT department and inserted the DVD when asked but its just not working..
any ideas? do i need to get the EXACT DVDs that came with the machine? i doubt that.
also - why doesnt any of the download options work? does anyone from apple know thats broken?
lastly - what about instruments? i can get the students some loops by dragging loops of my machine into garageband (using target disk mode), but how do i get instruments? i dont drag them into the loop browser, so where might they get put? should i put them in /Application Support/?
as we're talking about 37 students (this semster - last semester we had an ugly fix) i thought i'd ask before i did something.
thanks a bunch..

http://www.bulletsandbones.com/GB/GBFAQ.html#missingloops