From 8daefa09d99774639a355c0dfa2b989fa1007f5f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 11 Oct 2012 17:11:18 -0400
Subject: [PATCH] Created static repository close functions for unit testing and fixed Windows sharing violations
---
src/com/gitblit/utils/MarkdownUtils.java | 58 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 37 insertions(+), 21 deletions(-)
diff --git a/src/com/gitblit/utils/MarkdownUtils.java b/src/com/gitblit/utils/MarkdownUtils.java
index 15d59cf..0b8c9c5 100644
--- a/src/com/gitblit/utils/MarkdownUtils.java
+++ b/src/com/gitblit/utils/MarkdownUtils.java
@@ -20,46 +20,63 @@
import java.io.StringReader;
import java.io.StringWriter;
+import org.slf4j.LoggerFactory;
import org.tautua.markdownpapers.Markdown;
import org.tautua.markdownpapers.parser.ParseException;
+/**
+ * Utility methods for transforming raw markdown text to html.
+ *
+ * @author James Moger
+ *
+ */
public class MarkdownUtils {
+ /**
+ * Returns the html version of the markdown source text.
+ *
+ * @param markdown
+ * @return html version of markdown text
+ * @throws java.text.ParseException
+ */
public static String transformMarkdown(String markdown) throws java.text.ParseException {
- // Read raw markdown content and transform it to html
- StringReader reader = new StringReader(markdown);
- StringWriter writer = new StringWriter();
try {
- Markdown md = new Markdown();
- md.transform(reader, writer);
- return writer.toString();
- } catch (ParseException p) {
- throw new java.text.ParseException(p.getMessage(), 0);
- } finally {
+ StringReader reader = new StringReader(markdown);
+ String html = transformMarkdown(reader);
reader.close();
- try {
- writer.close();
- } catch (IOException e) {
- // IGNORE
- }
+ return html;
+ } catch (IllegalArgumentException e) {
+ throw new java.text.ParseException(e.getMessage(), 0);
+ } catch (NullPointerException p) {
+ throw new java.text.ParseException("Markdown string is null!", 0);
}
}
+ /**
+ * Returns the html version of the markdown source reader. The reader is
+ * closed regardless of success or failure.
+ *
+ * @param markdownReader
+ * @return html version of the markdown text
+ * @throws java.text.ParseException
+ */
public static String transformMarkdown(Reader markdownReader) throws java.text.ParseException {
// Read raw markdown content and transform it to html
StringWriter writer = new StringWriter();
try {
Markdown md = new Markdown();
md.transform(markdownReader, writer);
- return writer.toString();
+ return writer.toString().trim();
+ } catch (StringIndexOutOfBoundsException e) {
+ LoggerFactory.getLogger(MarkdownUtils.class).error("MarkdownPapers failed to parse Markdown!", e);
+ throw new java.text.ParseException(e.getMessage(), 0);
} catch (ParseException p) {
+ LoggerFactory.getLogger(MarkdownUtils.class).error("MarkdownPapers failed to parse Markdown!", p);
throw new java.text.ParseException(p.getMessage(), 0);
+ } catch (Exception e) {
+ LoggerFactory.getLogger(MarkdownUtils.class).error("MarkdownPapers failed to parse Markdown!", e);
+ throw new java.text.ParseException(e.getMessage(), 0);
} finally {
- try {
- markdownReader.close();
- } catch (IOException e) {
- // IGNORE
- }
try {
writer.close();
} catch (IOException e) {
@@ -67,5 +84,4 @@
}
}
}
-
}
--
Gitblit v1.9.1