byte buffer[]=new byte[1024];
int length=sock.read(buffer);
String st=(new String(buffer)).subString(0, length);
+ System.printString(st);
+ System.printString("\n");
+ System.printInt(length);
+ System.printString("\n");
room.sendToRoom(this, st.getBytes());
}
// Transaction variables
int numitems;
HashMap map;
- int balance=100000;
+ int balance;
// Constructor
public Inventory(){
map = new HashMap();
+ balance=100000;
}
public Inventory(int howmany) {
totalvalue+=oo.quantity*oo.price;
}
sb.append("Total value: ");
- sb.append(new Integer(totalvalue));
+ sb.append((new Integer(totalvalue)).toString());
sb.append("\n");
return sb.toString();
}
//Constructor
public Logger(){
- fos=new FileOutputStream("../../Tests/htmlfiles/request.log");//Open request.log file
+ fos=new FileOutputStream("request.log");//Open request.log file
}
//Logs filename as per client requests
//kind of operation, name of item, quantity of item, price of item
//e.g. trans_add_car_2_10000 is the filename
//store in the parsed[] string , add,car,2,1000
- public int parseTransaction(){
- int start = filename.indexOf('_');
- String s = filename.subString(start+1);
-
- if (s.startsWith("add")==true){
- // System.printString("DEBUG > ADD\n");
- int i1 = s.indexOf('_');
- parsed[0] = new String(s.subString(0,i1));
-
- String s1 = s.subString(i1+1);
- int i2 = s1.indexOf('_');
- parsed[1] = new String(s1.subString(0,i2));
-
- String s2 = s1.subString(i2+1);
- int i3 = s2.indexOf('_');
- parsed[2] = new String(s2.subString(0,i3));
-
- String s3 = s2.subString(i3+1);
- parsed[3] = s3;
-
- return 0;
-
- }
- if (s.startsWith("buy")==true){
- // System.printString("DEBUG > BUY\n");
- int i1 = s.indexOf('_');
- parsed[0] = s.subString(0,i1);
-
- String s1 = s.subString(i1+1);
- int i2 = s1.indexOf('_');
- parsed[1] = s1.subString(0,i2);
-
- String s2 = s1.subString(i2+1);
- parsed[2] = s2;
-
- parsed[3] = "";
-
- return 1;
- }
- if (s.startsWith("inventory")==true){
- // System.printString("DEBUG > INVENTORY\n");
- return 2;
-
- }
- // Error transaction
- return -1;
+ public int parseTransaction(){
+ int start = filename.indexOf('_');
+ String s = filename.subString(start+1);
+
+ if (s.startsWith("add")==true){
+ // System.printString("DEBUG > ADD\n");
+ int i1 = s.indexOf('_');
+ parsed[0] = new String(s.subString(0,i1));
+
+ int i2 = s.indexOf('_',i1+1);
+ parsed[1] = new String(s.subString(i1+1,i2));
+
+ int i3 = s.indexOf('_',i2+1);
+ parsed[2] = new String(s.subString(i2+1,i3));
+
+ String s3 = s.subString(i3+1);
+ parsed[3] = s3;
+
+ return 0;
+
+ }
+ if (s.startsWith("buy")==true){
+ // System.printString("DEBUG > BUY\n");
+ int i1 = s.indexOf('_');
+ parsed[0] = s.subString(0,i1);
+
+ int i2 = s.indexOf('_', i1+1);
+ parsed[1] = s.subString(i1+1,i2);
+
+ String s2 = s.subString(i2+1);
+ parsed[2] = s2;
+
+ parsed[3] = "";
+
+ return 1;
+ }
+ if (s.startsWith("inventory")==true){
+ // System.printString("DEBUG > INVENTORY\n");
+ return 2;
+
}
+ // Error transaction
+ return -1;
+ }
}
//Constructor
public Logger(){
- fos=new FileOutputStream("../../Tests/htmlfiles/request.log");//Open request.log file
+ fos=new FileOutputStream("request.log");//Open request.log file
}
//Logs filename as per client requests
int i1 = s.indexOf('_');
parsed[0] = new String(s.subString(0,i1));
- String s1 = s.subString(i1+1);
- int i2 = s1.indexOf('_');
- parsed[1] = new String(s1.subString(0,i2));
+ int i2 = s.indexOf('_',i1+1);
+ parsed[1] = new String(s.subString(i1+1,i2));
- String s2 = s1.subString(i2+1);
- int i3 = s2.indexOf('_');
- parsed[2] = new String(s2.subString(0,i3));
+ int i3 = s.indexOf('_',i2+1);
+ parsed[2] = new String(s.subString(i2+1,i3));
- String s3 = s2.subString(i3+1);
+ String s3 = s.subString(i3+1);
parsed[3] = s3;
return 0;
int i1 = s.indexOf('_');
parsed[0] = s.subString(0,i1);
- String s1 = s.subString(i1+1);
- int i2 = s1.indexOf('_');
- parsed[1] = s1.subString(0,i2);
+ int i2 = s.indexOf('_', i1+1);
+ parsed[1] = s.subString(i1+1,i2);
- String s2 = s1.subString(i2+1);
+ String s2 = s.subString(i2+1);
parsed[2] = s2;
parsed[3] = "";
char value[];
int count;
int offset;
+ private int cachedHashcode;
private String() {
}
}
public int hashCode() {
+ if (cachedHashcode!=0)
+ return cachedHashcode;
int hashcode=0;
for(int i=0;i<count;i++)
hashcode=hashcode*31+value[i+offset];
+ cachedHashcode=hashcode;
return hashcode;
}
if (nodetolabel.containsKey(current_node))
output.println("L"+nodetolabel.get(current_node)+":");
if (state.INSTRUCTIONFAILURE) {
- output.println("if ((--instructioncount)==0) injectinstructionfailure();");
+ if (state.THREAD) {
+ output.println("if ((++instructioncount)>failurecount) {instructioncount=0;injectinstructionfailure();}");
+ }
+ else
+ output.println("if ((--instructioncount)==0) injectinstructionfailure();");
}
if (current_node.numNext()==0) {
output.print(" ");
{
struct genpointerlist * ptr=failedtasks->list;
while(ptr!=NULL) {
- void *orig=ptr->src;
+ struct taskparamdescriptor *tpd=ptr->src;
+ void *orig;
void *copy;
- if (gc_createcopy(orig, ©))
- enqueue(orig);
- ptr->src=copy;
- ptr->object=copy;
+ int i;
+ for(i=0;i<tpd->numParameters;i++) {
+ orig=tpd->parameterArray[i];
+ if (gc_createcopy(orig, ©))
+ enqueue(orig);
+ tpd->parameterArray[i]=copy;
+ }
ptr=ptr->inext;
}
genrehash(failedtasks);
if (injectinstructionfailures) {
if (numfailures==0)
return;
- instructioncount=failurecount;
instaccum+=failurecount;
if ((((double)random())/RAND_MAX)<instfailurechance) {
if (numfailures>0)
#include <setjmp.h>
extern jmp_buf error_handler;
extern int instructioncount;
+extern int failurecount;
#ifdef PRECISE_GC
#include "garbage.h"