if(currentService == null){
if(currentService == null || currentPrinterName == null || !printerName.equals(currentPrinterName)){
	public static void print(String printerName, String svtTemplateName, 			String sVGData, int copies,			int visualVaildity,  UserDataVO userDataVO, 			String[] pINs, String[] pUKs, String hardTokenSerialPrefix,			String hardTokenSN, String copyOfHardTokenSN) throws PrinterException{		if(currentService == null){			PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();			DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;			PrintService printService[] =  PrintServiceLookup.lookupPrintServices(flavor, pras);			int i = 0;			String trimemdPrinterName = printerName.trim();			while ( i<printService.length && !trimemdPrinterName.equalsIgnoreCase(printService[i].getName()) ){				i++;			}			currentService = i<printService.length ? printService[i] : null;	 		}			try{			if(currentSVGTemplateName == null || !currentSVGTemplateName.equals(svtTemplateName)){				sVGImagemanipulator = new SVGImageManipulator(new StringReader(sVGData),visualVaildity,hardTokenSerialPrefix);			}			if(currentService != null){				PrinterJob job = PrinterJob.getPrinterJob();				job.setPrintService(currentService);				PageFormat pf = job.defaultPage();	   	  				Paper paper = new Paper();				paper.setSize(pf.getWidth(), pf.getHeight());				paper.setImageableArea(0.0,0.0,pf.getWidth(), pf.getHeight());								pf.setPaper(paper);	   	  				job.setPrintable(sVGImagemanipulator.print(userDataVO,pINs,pUKs,hardTokenSN, copyOfHardTokenSN),pf);	   	                  job.setCopies(copies);				job.print();	   	  	   	  	   	  	   	 			}else{				throw new EJBException("Error, couldn't find the right printer");		  	   				}			}catch(IOException e){			log.debug(e);			throw new PrinterException("Error occured when processing the SVG data :" + e.getMessage());				}	}