Author: kcardineaud Date: 2011-07-25 11:02:54 +0200 (Mon, 25 Jul 2011) New Revision: 187 Url: http://nuiton.org/repositories/revision/scmwebeditor/187 Log: Change exception when reading file mimetype Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-07-25 08:42:29 UTC (rev 186) +++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-07-25 09:02:54 UTC (rev 187) @@ -238,41 +238,60 @@ protected String getMimeType(File file) throws IOException, SAXException, TikaException { InputStream is = new FileInputStream(file); + String result = null; try { BodyContentHandler contenthandler = new BodyContentHandler(); Metadata metadata = new Metadata(); metadata.set(Metadata.RESOURCE_NAME_KEY, file.getName()); AutoDetectParser parser = new AutoDetectParser(); parser.parse(is, contenthandler, metadata); - String result = metadata.get(Metadata.CONTENT_TYPE); + result = metadata.get(Metadata.CONTENT_TYPE); if(log.isDebugEnabled()) { log.debug("Mine type of " + file.getName() + " is : " + result); + } + + } catch (SAXException e) { + if(log.isErrorEnabled()) { + log.error("Can't get MimeType, parsing error",e); } - return result; + } catch (TikaException e) { + if(log.isErrorEnabled()) { + log.error("Can't get MimeType, tika error",e); + } } finally { is.close(); } + return result; } - protected String getMimeType(String content, String filename) throws IOException, SAXException, TikaException { + protected String getMimeType(String content, String filename) throws IOException { InputStream is = new ByteArrayInputStream(content.getBytes()); + String result = null; try { BodyContentHandler contenthandler = new BodyContentHandler(); Metadata metadata = new Metadata(); metadata.set(Metadata.RESOURCE_NAME_KEY, filename); AutoDetectParser parser = new AutoDetectParser(); parser.parse(is, contenthandler, metadata); - String result = metadata.get(Metadata.CONTENT_TYPE); + result = metadata.get(Metadata.CONTENT_TYPE); if(log.isDebugEnabled()) { log.debug("Mine type of " + filename + " is : " + result); } - return result; + } catch (SAXException e) { + if(log.isErrorEnabled()) { + log.error("Can't get MimeType, parsing error",e); + } + } catch (TikaException e) { + if(log.isErrorEnabled()) { + log.error("Can't get MimeType, tika error",e); + } } finally { is.close(); } + return result; } protected String[] getMimeTypes(String content, String filename) throws IOException, SAXException, TikaException { Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-07-25 08:42:29 UTC (rev 186) +++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-07-25 09:02:54 UTC (rev 187) @@ -13,6 +13,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ServletRequestAware; +import org.apache.tika.exception.TikaException; import org.nuiton.scmwebeditor.ScmWebEditorBaseAction; import org.nuiton.scmwebeditor.SvnSession; import org.tmatesoft.svn.core.SVNAuthenticationException; @@ -23,6 +24,7 @@ import org.tmatesoft.svn.core.io.SVNRepository; import org.tmatesoft.svn.core.io.SVNRepositoryFactory; import org.tmatesoft.svn.core.wc.SVNWCUtil; +import org.xml.sax.SAXException; import com.opensymphony.xwork2.Action; @@ -247,14 +249,16 @@ String mimeType =null; - try { - mimeType = getMimeType(originalText, svnSess.getFileName()); - } catch (Exception e) { - if(log.isErrorEnabled()) { - log.error("Can't get MimeType",e); - } - } + + try { + mimeType = getMimeType(originalText, svnSess.getFileName()); + } catch (IOException e) { + if(log.isErrorEnabled()) { + log.error("Can't get MimeType, problem when reading file",e); + } + } + /* String[] mimeTypes =null; try {