From cb285cbfddfc0b633d6b8cdb4dc0d2bd2b8b51ef Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 05 Jan 2012 17:34:05 -0500
Subject: [PATCH] Fixed bug in receive hook for repositories in subfolders

---
 src/com/gitblit/utils/MarkdownUtils.java |   66 ++++++++++++++++++++++----------
 1 files changed, 45 insertions(+), 21 deletions(-)

diff --git a/src/com/gitblit/utils/MarkdownUtils.java b/src/com/gitblit/utils/MarkdownUtils.java
index 6cdb3be..a3a1859 100644
--- a/src/com/gitblit/utils/MarkdownUtils.java
+++ b/src/com/gitblit/utils/MarkdownUtils.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2011 gitblit.com.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package com.gitblit.utils;
 
 import java.io.IOException;
@@ -8,46 +23,55 @@
 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) {
-			}
+			return html;
+		} 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				
+		// 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();
-		} catch (ParseException p) {			
+			return writer.toString().trim();
+		} catch (ParseException p) {
 			throw new java.text.ParseException(p.getMessage(), 0);
 		} finally {
 			try {
-				markdownReader.close();
-			} catch (IOException e) {
-			}
-			try {
 				writer.close();
 			} catch (IOException e) {
+				// IGNORE
 			}
 		}
 	}
-
 }

--
Gitblit v1.9.1