output: #fixed code
                               public void read(String filename){
  		BufferedReader reader = getReader(filename);
  		String line = null;
  		boolean firstline = true;
  		Coordinate depotCoord = null;
  		int customerCount=0;
  		Integer nuOfCustomer = 0;
  		while((line=readLine(reader))!=null){
  			String trimedLine = line.trim();
  			if(trimedLine.startsWith("//")) continue;
  			String[] tokens = trimedLine.split("\\s+");
  			if(firstline){
  				nuOfCustomer=Integer.parseInt(tokens[0]);
  				customerCount=0;
  				firstline=false;
  			}
  			else if(customerCount<=nuOfCustomer) {
  				if(customerCount == 0){
  					depotCoord = Coordinate.newInstance(Double.parseDouble(tokens[1]), Double.parseDouble(tokens[2]));
  				}
  				else{
  					Service.Builder serviceBuilder = Service.Builder.newInstance(tokens[0]).addSizeDimension(0, Integer.parseInt(tokens[3]));
  					serviceBuilder.setCoord(Coordinate.newInstance(Double.parseDouble(tokens[1]), Double.parseDouble(tokens[2])));
  					vrpBuilder.addJob(serviceBuilder.build());
  				}
  				customerCount++;
  			}
  			else if(trimedLine.startsWith("v")){
  				VehicleTypeImpl.Builder typeBuilder = VehicleTypeImpl.Builder.newInstance("type_"+tokens[1]).addCapacityDimension(0, Integer.parseInt(tokens[2]));
  				int nuOfVehicles = 1;
  				if(vrphType.equals(VrphType.FSMF)){
  					typeBuilder.setFixedCost(Double.parseDouble(tokens[3]));
  				}
  				else if(vrphType.equals(VrphType.FSMFD)){
  					typeBuilder.setFixedCost(Double.parseDouble(tokens[3]));
  					if(tokens.length > 4){
  						typeBuilder.setCostPerDistance(Double.parseDouble(tokens[4]));
  					}
  					else throw new IllegalStateException("option " + vrphType + " cannot be applied with this instance");
  				}
  				else if(vrphType.equals(VrphType.FSMD)){
  					if(tokens.length > 4){
  						typeBuilder.setCostPerDistance(Double.parseDouble(tokens[4]));
  					}
  					else throw new IllegalStateException("option " + vrphType + " cannot be applied with this instance");
  				}
  				else if(vrphType.equals(VrphType.HVRPD)){
  					if(tokens.length > 4){
  						typeBuilder.setCostPerDistance(Double.parseDouble(tokens[4]));
  						nuOfVehicles = Integer.parseInt(tokens[5]);
  						vrpBuilder.setFleetSize(FleetSize.FINITE);
  						vrpBuilder.addPenaltyVehicles(5.0, 5000);
  					}
  					else throw new IllegalStateException("option " + vrphType + " cannot be applied with this instance");
  				}
  				else if (vrphType.equals(VrphType.HVRPFD)){
  					if(tokens.length > 4){
  						typeBuilder.setFixedCost(Double.parseDouble(tokens[3]));
  						typeBuilder.setCostPerDistance(Double.parseDouble(tokens[4]));
  						nuOfVehicles = Integer.parseInt(tokens[5]);
  						vrpBuilder.setFleetSize(FleetSize.FINITE);
  						vrpBuilder.addPenaltyVehicles(5.0, 5000);
  					}
  					else throw new IllegalStateException("option " + vrphType + " cannot be applied with this instance");
  				}
  				for(int i=0;i<nuOfVehicles;i++){
  					VehicleTypeImpl type = typeBuilder.build();
  					Vehicle vehicle = VehicleImpl.Builder.newInstance("vehicle_"+tokens[1]+"_"+i)
  							.setStartLocationCoordinate(depotCoord).setType(type).build();
  					vrpBuilder.addVehicle(vehicle);
  				}
  			}
  		}
  		closeReader(reader);
  	}
input: #vulnerable code 
                               public void read(String filename){
  		BufferedReader reader = getReader(filename);
  		String line = null;
  		boolean firstline = true;
  		Coordinate depotCoord = null;
  		int customerCount=0;
  		Integer nuOfCustomer = 0;
  		while((line=readLine(reader))!=null){
  			String trimedLine = line.trim();
  			if(trimedLine.startsWith("//")) continue;
  			String[] tokens = trimedLine.split("\\s+");
  			if(firstline){
  				nuOfCustomer=Integer.parseInt(tokens[0]);
  				customerCount=0;
  				firstline=false;
  			}
  			else if(customerCount<=nuOfCustomer) {
  				if(customerCount == 0){
  					depotCoord = Coordinate.newInstance(Double.parseDouble(tokens[1]), Double.parseDouble(tokens[2]));
  				}
  				else{
  					Service.Builder serviceBuilder = Service.Builder.newInstance(tokens[0], Integer.parseInt(tokens[3]));
  					serviceBuilder.setCoord(Coordinate.newInstance(Double.parseDouble(tokens[1]), Double.parseDouble(tokens[2])));
  					vrpBuilder.addJob(serviceBuilder.build());
  				}
  				customerCount++;
  			}
  			else if(trimedLine.startsWith("v")){
  				VehicleTypeImpl.Builder typeBuilder = VehicleTypeImpl.Builder.newInstance("type_"+tokens[1], Integer.parseInt(tokens[2]));
  				int nuOfVehicles = 1;
  				if(vrphType.equals(VrphType.FSMF)){
  					typeBuilder.setFixedCost(Double.parseDouble(tokens[3]));
  				}
  				else if(vrphType.equals(VrphType.FSMFD)){
  					typeBuilder.setFixedCost(Double.parseDouble(tokens[3]));
  					if(tokens.length > 4){
  						typeBuilder.setCostPerDistance(Double.parseDouble(tokens[4]));
  					}
  					else throw new IllegalStateException("option " + vrphType + " cannot be applied with this instance");
  				}
  				else if(vrphType.equals(VrphType.FSMD)){
  					if(tokens.length > 4){
  						typeBuilder.setCostPerDistance(Double.parseDouble(tokens[4]));
  					}
  					else throw new IllegalStateException("option " + vrphType + " cannot be applied with this instance");
  				}
  				else if(vrphType.equals(VrphType.HVRPD)){
  					if(tokens.length > 4){
  						typeBuilder.setCostPerDistance(Double.parseDouble(tokens[4]));
  						nuOfVehicles = Integer.parseInt(tokens[5]);
  						vrpBuilder.setFleetSize(FleetSize.FINITE);
  						vrpBuilder.addPenaltyVehicles(5.0, 5000);
  					}
  					else throw new IllegalStateException("option " + vrphType + " cannot be applied with this instance");
  				}
  				else if (vrphType.equals(VrphType.HVRPFD)){
  					if(tokens.length > 4){
  						typeBuilder.setFixedCost(Double.parseDouble(tokens[3]));
  						typeBuilder.setCostPerDistance(Double.parseDouble(tokens[4]));
  						nuOfVehicles = Integer.parseInt(tokens[5]);
  						vrpBuilder.setFleetSize(FleetSize.FINITE);
  						vrpBuilder.addPenaltyVehicles(5.0, 5000);
  					}
  					else throw new IllegalStateException("option " + vrphType + " cannot be applied with this instance");
  				}
  				for(int i=0;i<nuOfVehicles;i++){
  					VehicleTypeImpl type = typeBuilder.build();
  					Vehicle vehicle = VehicleImpl.Builder.newInstance("vehicle_"+tokens[1]+"_"+i)
  							.setLocationCoord(depotCoord).setType(type).build();
  					vrpBuilder.addVehicle(vehicle);
  				}
  			}
  		}
  		closeReader(reader);
  	} 
                              #location 16 
                              #vulnerability type RESOURCE_LEAK