Changeset 26457
- Timestamp:
- 2012-11-14T14:04:21+13:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/XMLTransformer.java
r25727 r26457 19 19 package org.greenstone.gsdl3.util; 20 20 21 import org.greenstone.util.GlobalProperties; 22 23 // XML classes 21 import java.io.BufferedReader; 22 import java.io.File; 23 import java.io.FileInputStream; 24 import java.io.FileNotFoundException; 25 import java.io.FileWriter; 26 import java.io.InputStreamReader; 27 import java.io.StringReader; 28 import java.io.StringWriter; 29 import java.io.UnsupportedEncodingException; 30 import java.util.HashMap; 31 import java.util.Iterator; 32 import java.util.Map; 33 import java.util.Set; 34 35 import javax.xml.parsers.DocumentBuilderFactory; 36 import javax.xml.transform.ErrorListener; 37 import javax.xml.transform.Source; 24 38 import javax.xml.transform.Transformer; 25 import javax.xml.transform.TransformerFactory;26 39 import javax.xml.transform.TransformerConfigurationException; 27 40 import javax.xml.transform.TransformerException; 28 import javax.xml.transform.ErrorListener; 29 41 import javax.xml.transform.TransformerFactory; 42 import javax.xml.transform.dom.DOMResult; 43 import javax.xml.transform.dom.DOMSource; 44 import javax.xml.transform.stream.StreamResult; 30 45 import javax.xml.transform.stream.StreamSource; 31 import javax.xml.transform.dom.DOMSource; 32 import javax.xml.transform.Source; 33 import javax.xml.transform.stream.StreamResult; 34 import javax.xml.transform.dom.DOMResult; 35 36 import javax.xml.parsers.DocumentBuilderFactory; 37 import javax.xml.parsers.DocumentBuilder; 46 47 import org.apache.log4j.Logger; 48 import org.greenstone.util.GlobalProperties; 49 import org.w3c.dom.Document; 38 50 import org.w3c.dom.Element; 39 import org.w3c.dom.Document;40 41 51 import org.w3c.dom.Node; 42 import org.w3c.dom.NodeList;43 44 // other java classes45 import java.io.StringReader;46 import java.io.StringWriter;47 import java.io.BufferedReader;48 import java.io.FileReader;49 import java.io.FileWriter;50 import java.io.File;51 import java.util.HashMap;52 import java.util.Set;53 import java.util.Map;54 import java.util.Iterator;55 56 import org.apache.xml.utils.DefaultErrorHandler;57 58 import org.apache.log4j.*;59 52 60 53 /** … … 288 281 TransformErrorListener transformerErrorListener = (TransformErrorListener) this.t_factory.getErrorListener(); 289 282 transformerErrorListener.setStylesheet(stylesheet); 290 Transformer transformer = this.t_factory.newTransformer(new StreamSource( stylesheet));283 Transformer transformer = this.t_factory.newTransformer(new StreamSource(new InputStreamReader(new FileInputStream(stylesheet), "UTF-8"))); 291 284 DOMResult result = (docDocType == null) ? new DOMResult() : new DOMResult(docDocType); 292 StreamSource streamSource = new StreamSource( source);285 StreamSource streamSource = new StreamSource(new InputStreamReader(new FileInputStream(source), "UTF-8")); 293 286 294 287 transformer.setErrorListener(new TransformErrorListener(stylesheet, streamSource)); … … 304 297 { 305 298 return transformError("XMLTransformer.transform(File, File)" + "\ncouldn't transform the source for files\n" + stylesheet + "\n" + source, e); 299 } 300 catch (UnsupportedEncodingException e) 301 { 302 return transformError("XMLTransformer.transform(File, File)" + "\ncouldn't read file due to an unsupported encoding\n" + stylesheet + "\n" + source, e); 303 } 304 catch (FileNotFoundException e) 305 { 306 return transformError("XMLTransformer.transform(File, File)" + "\ncouldn't find the file specified\n" + stylesheet + "\n" + source, e); 306 307 } 307 308 } … … 310 311 // this method prints the exception to the tomcat window (system.err) and the greenstone log and then returns 311 312 // an xhtml error page that is constructed from it. 312 protected Node transformError(String heading, TransformerException e)313 protected Node transformError(String heading, Exception e) 313 314 { 314 315 String message = heading + "\n" + e.getMessage(); 315 316 logger.error(heading + ": " + e.getMessage()); 316 317 317 String location = e.getLocationAsString(); 318 if (location != null) 319 { 320 logger.error(location); 321 message = message + "\n" + location; 318 if (e instanceof TransformerException) 319 { 320 String location = ((TransformerException) e).getLocationAsString(); 321 if (location != null) 322 { 323 logger.error(location); 324 message = message + "\n" + location; 325 } 322 326 } 323 327 System.err.println("****\n" + message + "\n****"); … … 552 556 File styleFile = new File(webLogsTmpFolder + File.separator + "stylesheet" + XMLTransformer.debugFileCount + ".xml"); 553 557 File sourceFile = new File(webLogsTmpFolder + File.separator + "source" + XMLTransformer.debugFileCount + ".xml"); 554 555 558 try 556 559 { … … 613 616 XMLTransformer.this.transform(styleFile, sourceFile); // calls the File, File version, so debugAsFile will be false 614 617 } 615 616 618 else 617 619 { // ErrorListener was set on a TransformerFactory object
Note:
See TracChangeset
for help on using the changeset viewer.