This page is part of a searchable archive of the Code Style site log. Technical implementation notes that shed light on when, why and how the site has evolved since 2000.
Follow the latest entries to the site log.
Added "server" error to the subject line of the error report email for Custom error 500 for clarity over other error types.
Actions: Ask a question about this post, seek clarification or offer a correction.
Corrected a bad link on the private XHTML servlet test case document.
Actions: Ask a question about this post, seek clarification or offer a correction.
Investigated a periodic crash of the site servlet engine and discovered a bug in the abstract ParseServlet that is the superclass of the ParseRSS and ParseRDF servlets. When an exception was thrown processing the XML transformation, the servlet engine was throwing an IllegalStateException because of repeated calls to the servlet response's getOutputStream method. The same HttpServletResponse that was attached to the XML transformation was passed to the ErrorHandler class for exceptions, thus calling getOutputStream a second time.
The ParseServlet bug went un-detected because of an equivalent oversight in the MockServletResponse class used to test ErrorHandler.
Added the appropriate IllegalStateException to the MockServletResponse class and a new test method to ErrorHandlerTest to check multiple calls to getOutputStream are handled correctly.
These corrections resulted in the ParseServletTest class throwing the appropriate exception. Then corrected the ParseServlet class by passing the XML transformation to a ByteArrayOutputStream, and only calling getOutputStream after it returns. This has the added advantage of being able to obtain the byte size of the transformation response body and set the HTTP Content-Length header to assist caching:
response.setContentLength(byteArrayOut.size());
Since re-building the Code Style development environment on Windows 98 (see Site log, November 16), the Ant build script started throwing Just In Time (JIT) compiler errors: A nonfatal internal JIT (3.10.107(x)) error 'chgTarg: Conditional' has occurred in .... Extensive research indicated no documented cause, except that Java Software Development Kit version 1.2.2 was often mentioned. Upgraded from Java version 1.2.2 to 1.3.1, which stopped the errors, and updated all path and classpath references as necessary.
Actions: Ask a question about this post, seek clarification or offer a correction.
Added new Bitstream fonts for Linux to the Unix family font sampler and survey style sheet for testing:
.BitstreamVeraSans{
font-family: "Bitstream Vera Sans";
}
.BitstreamVeraSerif{
font-family: "Bitstream Vera Serif";
}
.BitstreamVeraSansMono{
font-family: "Bitstream Vera Sans Mono";
}
Actions: Ask a question about this post, seek clarification or offer a correction.
Find technical implementation notes on all aspects of the Code Style site.
For a summary overview, see the annotated site log contents.