diff --git a/src/com/silverwrist/venice/servlets/StyleSheet.java b/src/com/silverwrist/venice/servlets/StyleSheet.java
index f34b19e..db1147f 100644
--- a/src/com/silverwrist/venice/servlets/StyleSheet.java
+++ b/src/com/silverwrist/venice/servlets/StyleSheet.java
@@ -44,12 +44,18 @@ public class StyleSheet extends HttpServlet
ServletContext ctxt = getServletContext();
RenderData rdat = RenderConfig.createRenderData(ctxt,request,response);
String stylesheet = Variables.getStyleSheetData(ctxt,rdat);
- response.setContentType("text/css");
- response.setContentLength(stylesheet.length());
- PrintWriter out = response.getWriter();
- out.write(stylesheet);
- out.flush();
- response.flushBuffer();
+ if (stylesheet!=null)
+ { // send back the stylesheet
+ response.setContentType("text/css");
+ response.setContentLength(stylesheet.length());
+ PrintWriter out = response.getWriter();
+ out.write(stylesheet);
+ out.flush();
+ response.flushBuffer();
+
+ } // end if
+ else // no stylesheet data
+ response.sendError(HttpServletResponse.SC_NOT_FOUND,"stylesheets not enabled");
} // end doGet
diff --git a/src/com/silverwrist/venice/servlets/Variables.java b/src/com/silverwrist/venice/servlets/Variables.java
index cef3412..f62325b 100644
--- a/src/com/silverwrist/venice/servlets/Variables.java
+++ b/src/com/silverwrist/venice/servlets/Variables.java
@@ -329,6 +329,8 @@ public class Variables
public static String getStyleSheetData(ServletContext ctxt, RenderData rdat) throws IOException
{
+ if (!(rdat.useStyleSheet()))
+ return null;
String data = null;
SoftReference r = (SoftReference)(ctxt.getAttribute(STYLESHEET_ATTRIBUTE));
if (r!=null)
diff --git a/src/com/silverwrist/venice/servlets/format/RenderConfig.java b/src/com/silverwrist/venice/servlets/format/RenderConfig.java
index fa17121..88878d0 100644
--- a/src/com/silverwrist/venice/servlets/format/RenderConfig.java
+++ b/src/com/silverwrist/venice/servlets/format/RenderConfig.java
@@ -136,26 +136,25 @@ public class RenderConfig implements ColorSelectors
logger.debug("Font face: " + font_face);
String stylesheet_loc = render_sect_h.getSubElementText("stylesheet");
- if (stylesheet_loc==null)
- { // no tag - bail out now!
- logger.fatal(" section has no element");
- throw new ConfigException("no found in section",render_sect);
-
- } // end if
-
- if (!(stylesheet_loc.startsWith("/")))
- stylesheet_loc = root_file_path + stylesheet_loc;
- if (logger.isDebugEnabled())
- logger.debug("Stylesheet location: " + stylesheet_loc);
-
- // Test to make sure the stylesheet is actually present.
- stylesheet = new File(stylesheet_loc);
- if (!(stylesheet.exists() && stylesheet.canRead()))
- { // it's not there - bail out!
- logger.fatal("unable to read stylesheet file: " + stylesheet_loc);
- throw new ConfigException("stylesheet " + stylesheet_loc + " cannot be read",render_sect);
+ if (stylesheet_loc!=null)
+ { // we're using Cascading Stylesheets - load it and test for existence
+ if (!(stylesheet_loc.startsWith("/")))
+ stylesheet_loc = root_file_path + stylesheet_loc;
+ if (logger.isDebugEnabled())
+ logger.debug("Stylesheet location: " + stylesheet_loc);
+
+ // Test to make sure the stylesheet is actually present.
+ stylesheet = new File(stylesheet_loc);
+ if (!(stylesheet.exists() && stylesheet.canRead()))
+ { // it's not there - bail out!
+ logger.fatal("unable to read stylesheet file: " + stylesheet_loc);
+ throw new ConfigException("stylesheet " + stylesheet_loc + " cannot be read",render_sect);
+
+ } // end if
} // end if
+ else // no stylesheet
+ stylesheet = null;
Element colors_sect = render_sect_h.getSubElement("colors");
if (colors_sect==null)
@@ -554,6 +553,9 @@ public class RenderConfig implements ColorSelectors
synchronized String loadStyleSheetData() throws IOException
{
+ if (stylesheet==null)
+ return null;
+
// Load the stylesheet data.
StringBuffer raw_data = IOUtil.loadText(stylesheet);
stylesheet_time = stylesheet.lastModified();
@@ -588,10 +590,18 @@ public class RenderConfig implements ColorSelectors
boolean hasStyleSheetChanged()
{
+ if (stylesheet==null)
+ return false;
return (stylesheet_time!=stylesheet.lastModified());
} // end hasStyleSheetChanged
+ boolean useStyleSheet()
+ {
+ return (stylesheet!=null);
+
+ } // end useStyleSheet
+
/*--------------------------------------------------------------------------------
* Static operations for use by VeniceServlet
*--------------------------------------------------------------------------------
diff --git a/src/com/silverwrist/venice/servlets/format/RenderData.java b/src/com/silverwrist/venice/servlets/format/RenderData.java
index be9f941..9ff4e58 100644
--- a/src/com/silverwrist/venice/servlets/format/RenderData.java
+++ b/src/com/silverwrist/venice/servlets/format/RenderData.java
@@ -318,6 +318,12 @@ public class RenderData implements ColorSelectors
} // end hasStyleSheetChanged
+ public boolean useStyleSheet()
+ {
+ return rconf.useStyleSheet();
+
+ } // end useStyleSheet
+
public String formatDateForDisplay(Date date)
{
if (display_date==null)
diff --git a/web/format/base.jsp b/web/format/base.jsp
index c9f7f29..cbea91c 100644
--- a/web/format/base.jsp
+++ b/web/format/base.jsp
@@ -37,7 +37,9 @@
<%= rdat.getTitleTag(basedat.getTitle(rdat)) %>
<%= rdat.getStdBaseFontTag(3) %>
- " TYPE="text/css">
+ <% if (rdat.useStyleSheet()) { %>
+ " TYPE="text/css">
+ <% } // end if %>
<% if (rdat.noSmartTags()) { %>
<% } // end if %>