You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by "Sticker, Markus / Kuehne + Nagel / Ham MI-EC /external" <ex...@Kuehne-Nagel.com> on 2010/10/19 10:25:24 UTC

Xalan doesn't release the write permissions of the output file

Hi,

I have a problem with the output file, because I have to modif
the output file after it was writen on disk:
(it is also not possible to delete it by an other Task)

Transformer transformer;
				try {
					// tries to run the tranformantion
					/*
					 * transformer = tFactory.newTransformer(new StreamSource(
					 * threadManager.props.getProperty("xsltfolder")
					 * +"/style_dyn_pagebreak.xsl"));
					 */
					TransformerFactory tFactory = TransformerFactory.newInstance();
					transformer = tFactory.newTransformer(new StreamSource(
							threadManager.props.getProperty("xsltfolder") +"/style_dyn_pagebreak.xsl"));
					
					//transformer = threadManager.getTransformer();
					// long In = Calendar.getInstance().getTimeInMillis();
					
					FileOutputStream newXML = new FileOutputStream(
							threadManager.props
							.getProperty("targetfolder")
							+ "/MD_"
							+ nextFile.replace(
									".xml",
									".temp"));
					StreamResult newStream = new StreamResult(newXML);
					transformer
							.transform(
									source,
									newStream);
					
					
					newXML.close();
					
					File renFile = new File(threadManager.props.getProperty("targetfolder")
							+ "/" +
							 "MD_"
									+ nextFile.replace(".xml", ".temp"));
					System.out.println(renFile.exists() + " " + threadManager.props.getProperty("targetfolder")
							+ "/" +
							"MD_" + nextFile);
				
					renFile.renameTo(new File("./"+threadManager.props
							.getProperty("targetfolder")+"/", "MD_" + nextFile));
					
					

					File delFile = new File(
							threadManager.props.getProperty("sourcefolder")
									+ "/" + nextFile);
					delFile.delete();

					// long pt = (long)Calendar.getInstance().getTimeInMillis()
					// - In;
					// System.out.println("on CPU " + pt+ " " + nextFile);
					// setting the done-flag for the processed file

				} catch (Exception e) {
					e.printStackTrace();
				}

Thanks for your help
br

Markus Sticker

Kuehne + Nagel (AG & Co.) KG, Geschaeftsleitung: Hans-Georg Brinkmann (Vors.), Dirk Blesius, Reiner Heiken, Bruno Mang, Alfred Manke, Christian Marnetté, Mark Reinhardt, Jens Wollesen, Klaus Jaeger (stellv.), Sitz: Bremen, Registergericht: Bremen, HRA 21928, USt-IdNr.: DE 812773878, Persoenlich haftende Gesellschaft: Kuehne & Nagel A.G., Sitz: Contern/Luxemburg Geschaeftsfuehrender Verwaltungsrat: Klaus-Michael Kuehne




AW: Xalan doesn't release the write permissions of the output file

Posted by "Sticker, Markus / Kuehne + Nagel / Ham MI-EC /external" <ex...@Kuehne-Nagel.com>.
 Sorry, I found it:

	tFactory.newInstance();
	newXML.close();


-----Ursprüngliche Nachricht-----
Von: Sticker, Markus / Kuehne + Nagel / Ham MI-EC /external [mailto:external.Markus.Sticker@Kuehne-Nagel.com] 
Gesendet: Dienstag, 19. Oktober 2010 10:25
An: 
Betreff: Xalan doesn't release the write permissions of the output file

Hi,

I have a problem with the output file, because I have to modif the output file after it was writen on disk:
(it is also not possible to delete it by an other Task)

Transformer transformer;
				try {
					// tries to run the tranformantion
					/*
					 * transformer = tFactory.newTransformer(new StreamSource(
					 * threadManager.props.getProperty("xsltfolder")
					 * +"/style_dyn_pagebreak.xsl"));
					 */
					TransformerFactory tFactory = TransformerFactory.newInstance();
					transformer = tFactory.newTransformer(new StreamSource(
							threadManager.props.getProperty("xsltfolder") +"/style_dyn_pagebreak.xsl"));
					
					//transformer = threadManager.getTransformer();
					// long In = Calendar.getInstance().getTimeInMillis();
					
					FileOutputStream newXML = new FileOutputStream(
							threadManager.props
							.getProperty("targetfolder")
							+ "/MD_"
							+ nextFile.replace(
									".xml",
									".temp"));
					StreamResult newStream = new StreamResult(newXML);
					transformer
							.transform(
									source,
									newStream);
					
					
					newXML.close();
					
					File renFile = new File(threadManager.props.getProperty("targetfolder")
							+ "/" +
							 "MD_"
									+ nextFile.replace(".xml", ".temp"));
					System.out.println(renFile.exists() + " " + threadManager.props.getProperty("targetfolder")
							+ "/" +
							"MD_" + nextFile);
				
					renFile.renameTo(new File("./"+threadManager.props
							.getProperty("targetfolder")+"/", "MD_" + nextFile));
					
					

					File delFile = new File(
							threadManager.props.getProperty("sourcefolder")
									+ "/" + nextFile);
					delFile.delete();

					// long pt = (long)Calendar.getInstance().getTimeInMillis()
					// - In;
					// System.out.println("on CPU " + pt+ " " + nextFile);
					// setting the done-flag for the processed file

				} catch (Exception e) {
					e.printStackTrace();
				}

Thanks for your help
br

Markus Sticker

Kuehne + Nagel (AG & Co.) KG, Geschaeftsleitung: Hans-Georg Brinkmann (Vors.), Dirk Blesius, Reiner Heiken, Bruno Mang, Alfred Manke, Christian Marnetté, Mark Reinhardt, Jens Wollesen, Klaus Jaeger (stellv.), Sitz: Bremen, Registergericht: Bremen, HRA 21928, USt-IdNr.: DE 812773878, Persoenlich haftende Gesellschaft: Kuehne & Nagel A.G., Sitz: Contern/Luxemburg Geschaeftsfuehrender Verwaltungsrat: Klaus-Michael Kuehne