The following lines are just describing some bug fixes and
enhancements that happened recently, it is edited by hand and is far from
being complete (We forgot to update it quite often). We plan to have an
automatically updated version based on cvs commit. Also we don't put
resolution time, which may be useful to understand that doing XML based
serialization of resources takes more than one day ;)
The current work on Jigsaw is focused on stability and
HTTP/1.1 comformance, thanks to the great work done on CoAdvisor by The Measurement Factory.
- (20100202) Range request fix in the available byte count of ByteRangeOutputStream
- (20100119) Fixed pageCompile last segment size calculation
- (20080903) Range request checks the unit of the requested range
- (20070928) Changed handling of resource size from int to long, to cope wiht 2GB+ files/streams
- (20070817) Stricter checks for stream closing, HttpURLConnection fixed to clean the stream only when needed (previously, garbage collecting the object was improperly closing the stream)
- (20070320) Fixed cookie parsing bug, if the cookie value contains a '='
- (20070228) Fixed SAX parsing of stores and remote resource description (allow multiple 'characters' call for one value)
- (20070228) Added support for other SAX parsers, a patched version of Piccolo, then XP, then Xerces
- (20070228) Removed an unneeded synchronization point in HTTPFrame.getURL()
- (20070228) Added an extra SP when exporting auth headers with different components
- (20070228) Fixed source code to remove 'enum' as it is now a keywork starting with JDK 1.5
- (20050531) Added a "detach" method to HttpBasicConnection to remove a connection from the list of used client connections but without closing the socket immediately (used when the client hits a HTTP/1.0 server that doesn't send Content-Length).
- (20050527) Fixed client connection deletion in connection reuse, it was leading to a leak in the client hashtable (and to lots of connections in CLOSE_WAIT).
- (20050516) Fixed bug in DateParser (wrong timezone offset) thanks to Menno Jonkers
- (20050221) Optimized a bit Digest Auth (the RFC2069 one) and implemented Digest Auth with qop="auth" per RFC2617 (available with SecurityLevel set to 2), See DigestQopAuthPrincipal
- (20041123) Fixed a few WebDAV properties that were using wrong formats
- (20041123) Added a method to print Dates in ISO 8601 format without milliseconds
- (20041123) HeaderFilter now sets the relevant headers even when the reply is sent via the exception mechanism.
- (20041104) More SSL and servlet related patches from Thomas Kopp.
- (20041022) ActiveStream patch, under some condition, the same data
could be re-read a data chunk (thanks to Doug Borland)
- (20041013) The servlet parameter decoding now uses the right charset.
- (20040906) The Servlet runner thread now use the server
timeout mechanism to interrupt the running thread when the server
is closing the request on timeout.
- (20040830) Added a socket timeout on request
parsing, to avoid having it linked to request timeout
- (20040720) Fixed error when file timestamp was not modified but the file was actually modified.
- (20040720) Fixed deadlock during store change notification when the sweeper is running (very rare)
- (20040331) Fixed server client count when load is raising from LIGHT to DEAD
- (20040325) Fixed Segment information unpickle, as the segment start and size were not properly parsed, leading to an infinite loop
- (20040324) More SSL patches from Thomas Kopp, see changelog for more details.
- (20040311) Fixed connection count when MimeParser did not started and connection was new.
- (20040311) Added a default policy to reuse the same connection when the thread matches (in HttpBasicConnection)
- (20040311) Added support for connection reuse policies in the Client stack.
- (20040225) Client stack now reuses the
connection timeout parameter.
- (20040211) Fix in the client stack persistent connection handler. It now closes the socket and mark the connection free when a "Connection: close" header is in the reply.
- (20040210) SSL patches from Thomas Kopp.
- (20040210) Container key generation now uses a wider range for key creation
- (20040202) URI components now generate an exception when a separator is found
- (20040121) Memory usage optimization of the serialization of a resource.
- (20040121) Read/write of stores is now more fault tolerant.
- (20040109) Fixed the client stack use of connections, also the global server knowledge hastable is now trimmed the right way.
- (20040109) Fixed StatisticsFrame to use less StringBuffers
- (20040106) Added a configurable timeout on connect, for the HTTP client stack.
org.w3c.www.protocol.http.connections.connTimeout (defaulting to 1000ms)
- (20040106) Fixed ContainerResource check for
duplicate key, the "new key" algorithm is now more random (ie it uses the
whole scale instead of the object serial mask), as it was leading to
infinite loops on huge sites.
- (20031030) Added internal COPY/MOVE in DAVFrame.
The default external one was not working for SSL-elabled webdav servers.
Note that a copy on a remote SSL server still won't work.
- (20031020) Removed mime type check on PUT
- (20031014) Added the underlying exception in the
HttpManager to distinguish between errors in the client stack.
- (20030905 Fixed deadlock in NegotiatedFrame.
getVary() allowed a backward sync chain.
- (20030701) Added a "equiv" method in MimeType to
check for text/xml - application/xml rough equivalence on PUT
- (20030701) Added Long support in HttpBuffer and
- (20030701) Fixed lock ordering in NewStoreEntry to
avoid a deadlock
- (20030701) Verification of connection availability
on POST changed (need to have a fd_err + select to do it in a better
- (20030606) Fixed deadlock when a file resource
mark its parent as modified (backward locking, again)
- (20030604) CvsRunner now uses File.createTempFile
instead of hardcoded /tmp (was problematic
on windows platform)
- (20030528) Fixed deadlock in FileResource (backward
locking on directory listing creation))
- (20030430) Fixed CgiFrame to accept more output from
Cgis (triggered my perl cgi library)
- (20030429) Added TeraBytes support for statistics
- (20030416) Fixed notifyUnload in ForwardFrame to avoid
nullpointer exception (patch
from Brian Laird)
- (20030415) Fixed getParameterMap of ServlerRequest to
map servlet2.3 spec (thanks to Thomas Kopp)
- (20030402) CacheFilter now normalize the URL before
any processing to avoid duplication on capitalization
- (20030325) Fixed test for socket close in jdk1.4
specific part, added a property to allow retries on two-steps request, in
the case of error on headers (thx to Phil Blake from IBM pointing me this
- (20030228) Writers for resource serialization, both in
admin server and ResourceStoreManager now force UTF-8 encoding (as XML is
declared to be UTF-8)
- (20030227) Error recovery on parsing errors of
serialized resources, allowing stores to continue loading
- (20030227) Cleaned stat generation and added
- (20030226) HtmlGenerator now uses HTML4.01 and adds
the charset parameter if it is known
- (20030225) Added finer grain statistics by separating
dynamic from static generated replies
- (20030225) Fixed replaying of 1xx replies back to the
- (20030224) Fixed HttpCacheControl to add new values
for a directive that appears several times
- (20030224) Re-fixed validators for If-Match
- (20030224) dupRequest in proxy now removes
Proxy-Authorization, thx to Thomas Kriegelstein
- (20030224) Client now send back a BAD_REQUEST when the
http request parser in strict mode throw an exception
- (20030222) Fixed header name+":" parsing to include
- (20030221) proxy now serves GATEWAY_TIMEOUT and
BAD_GATEWAY as it should
- (20030221l) Kludge for Age and maxValue -> must use
Long instead of integers
- (20030221) Fixed sharing default for the cache to
match the one of CacheProp (true)
- (20030221) Strict HTTP header parsing mode made more
valid wrt quoted strings
- (20030221) More error handling in strict mode to
generate BAD_REQUEST replies
- (20030220) A server-side "lenient" HTTP parsing
property has been added, decoupled from the client-side one, settable via
GeneralProperties in JigAdmin
- (20030220) Parsing of field-value now has a
- (20030220) Revalidation on HEAD now invalidates on new
- (20030219)Parsing of HttpInteger now generates an
exception on overflow
- (20030219)Fixed handling of errors during HTTP headers
parsing in the proxy, now returns a BAD_GATEWAY
- (20030219)Accept header is no longer automatically
added by the proxy when the client request do not have it.
- (20030218)Fixed deadlock in ServletWrapper wrt lock
ordering of timeout manager, when different instances of the servlet are
created while some are timeouting
- (20030218) Handling of HTTP exception in the
ForwardFrame is changed, direct HTTP exception now generates a 502 Bad
Gateway instead of a 504
- (20030218) Precondition failed in the cache now
generate an exception with a complete reply (ie: not reusing "wrong"
informations from the cached resource)
- (20030217) HttpCacheControl raw bytes shouldn't be
unquoted before parsing
- (20030217) Replies from a shared cache now remove the
header list protected by a private cache-control
- (20030217) Headers protected by a no-cache directive
are no longer stored
- (20030216) Cache-Control now parses extensions instead
of throwing an exception
- (20030216) Host header normalization now uses case
insensitive URI scheme comparison
- (20030216) Proxy now forwards back the 100 Continue
reply from the upstream server
- (20030216) Multiple 100 results now in multiple
- (20030215) Validators (If-None-Match...) in the
EntityCacheResource are now matching the one in HTTPFrame
- (20030215) Default freshness lifetime for cgi with no
header info is now 0.
- (20030214) Cache is not used when a no-store directive
is present in the request
- (20030214) Overflow in Max-Forward leads to an
exception and a 5xx reply now, instead of forwarding a wrong value
- (20030214) Added consistency checks in the cache for
- (20030214) Fixed ForwardFrame to check
chuked/Content-Length mismatch by reusing the duplicated request/reply
that actually has the right information
- (20030213) Fixed CacheFilter to do stricter host:port
check before invalidating resources on PUT/POST/DELETE
- (20030213) Invalidation of Content-Location now uses
relative URIs (was partly done, a typo was in the way)
- (20030213) Fixed CacheStore to avoid calls on
LRUNodes, as synchronization is missing on the SyncLRUList in this
- (20030213) CacheGeneration uses a more stricter way of
crawling the LRUlist of files to delete
- (20030211) Fixed parsing of Content-Range (support for
- (20030210) Fixed XMP parsing in JpegHeaders
- (20030204) Fixed servlet flush notification to avoid
race condition problems with sendError/sendRedirect and such.
- (20030204) Fixed http Client to avoid aborting on
strange servlet related IOExceptions (see org.w3c.jigsaw.http.Client
rev1.71 log for in depth explanations)
- (20030203) CgiFrame now display in the server console
stderr of forked Cgis (prevent some cgi lockups on Win platform)
- (20030131) Added a way to restransmit some buggy but
not defined in rfc2616 headers (cookies, not to name it)
- (20030131) Invalidation of Location and
Content-Location was wrongly assuming that resource were live in the
cache, leading to errors for valid requests
- (20030127) Fixed If-Match if the resource ETag is weak
(currently, it can happen only in the cache)
- (20030127) Fixed JpegHeaders to deliver XMP at the
beginning of the XML and not at the beginning of the chunk
- (20030124) Fixed JpegComFrame, the parameter was
unescaped twice, problematic with application/???+xml mime types
- (20030124) Added JpegXmpFrame, to extract
automatically XMP from Jpeg images
- (20030124) Fixed revalidation in HTTPFrame when both
If-None-Match and If-Modified-Since are present
- (20030124) Implemented Vary support and revalidation
of negotiated resources in the client-side HTTP cache
- (20030122) Implemented 410 Gone permanent support via
the new "shrinkable" flag of DirectoryResource (similar to "extensible"
for for deletions)
- (20030122) Cached resources were incorrectly asking
for revalidation every time once marked invalid.
- (20030122) Cache now serve HEAD from the cache
- (20030122) Cache now invalidate resource in Location
or Content-Location for POST, PUT and DELETE, if host matches the
- (20030121) Added \CHAR escaping in quoted string of a
- (20030120) Client stack will retry requests only if it
is a known idempotent resource
- (20030120) Fixed TRACE to allow it again to be
- (20030120) Fixed bug in Expectation check in the
proxy, and in the general case.
- (20030120) Fixed bug in continuation with empty
- (20030115) Fixed bug in header continuation
- (20030114) GZIPFilter was incorrectly setting
Transfer-Encoding instead of Content-Encoding
- (20030106) Fixed ForwardFrame to forbid forward of
Content-Location when reply is chunked
- (20030106) Fixed ForwardFrame to remove received
- (20030106) Fixed HTTP stack's Reply to allow body on
OPTIONS per rfc2616
- (20021206) Fixed lock ordering in HTTPFrame regarding
methods on Container (deadlock reported 5/12/2002)
- (20021017) Fixed deadlock in Resource.getParent(),
when both child and parent try to lock each other.
- (20021017) Fixed another deadlock in the HTTP client
- (20020918) Fixed bug in ip -> string optimized
function that was leading to wrong values
- (20020916) Added more servlet 2.3 supported
- (20020911) Deadlock fixes in the HTTP client stack
- (20020911) Removed potential conflicting Connection:
header values in the HTTP client stack during discovery of HTTP
- (20020911) FIxed RedirectedFrame to avoid ipv6-like
hosts when it is a ipv4 one.
- (20020902) Added a way to optimize by not unloading
big stores, depending on a tunable limit.
- (20020827) Ensure that keys in the
ResourceStoreManager are not used twice when generated
- (20020808) Fixed the default encoding used in
JigsawHttpServletResponse per servlet 2.3 javadoc
- (20020808) Solved the deadlock problem with negotiated
frame, directory listing, and everything that needs backward traversal of
the resource tree.
- (20020805) Fixed JigsawHttpServletResponse, it now
checks that the stream has been commited before (wrongly) barfing
- (20020729) Fixed Base64Decoder based on Jeffery
Collins <email@example.com> original patch
- (20020729) Fixed JigsawHttpServletRequest
getCharacterEncoding to return null when undefined instead of the
- (20020729) Implemented JigsawHttpServletRequest
setEncoding and other servlet 2.3 API methods
- (20020726) Fixed ContentLengthInputStream, it now send
an IOException when the stream is cut too early in read()
- (20020725) Fixed HttpURLConnection getContentType was
raising an exception rather than returning null
- (20020717) Various updates in the HTTP stack, to
consume less memory and use non-deprecated Date API.
- (20020715) Integrated cookie parsing patch contributed
by Julien Mudry <firstname.lastname@example.org>
- (20020711) URL in jdk1.4 can have an empty file
element, it is now translated to '/' for all methods but OPTIONS, where
it is '*'
- (20020711) Special files "aux", "con", etc. can no
longer be created by the indexer on windows platform (still possible on
other platforms as those files are not special there).
- (20020708) Fixed servlet wrapper to close the input
stream when needed, also when a relocate or an error is triggered from
the servlet, an exception is raised if the client already got (part of)
- (20020705) ServletWrapper now take the feeding thread
from a thread cache (avoid keeping too many open threads)
- (20020702) Fixed reuse of connection in the HTTP
Client stack, by using jdk1.4 method on socket (uses reflection to keep
the code backward compatible)
- (20020702) Fixed HTTP compliance of chunked request,
and proxy of request without body
- (20020626) Improved AclW3Cdb, saving space in the
indexing phase, sligthly improved lookup
- (20020619) Redid the InetAddress dump in the logger as
well as the status code dump
- (20020619) Memory and performance upgrade of the
infamous CommonLogger and ExtendedCommonLogger, who were the primary
culprits in the memory usage once the stores are loaded.
- (20020612) Almost all memory should be kept at a
minimal level now, the worst thing being the Logger now
- (20020603) Started to find and elimnate all
unnecessary memory allocated
- (20020529) Fixed directory index of
ZipDirectoryResource, to delete and get size information the right
- (20020529) Fixed ZipFrame to allow automagic
destruction of stale entries in the underlying zip
- (20020527) Error reported when an error occur in the
file system does not display the PATH any longer to avoid disclosing
- (20020516) FIxed a potential leak (never emptied
hashtable) in HttpManager
- (20020411) Fixed RelocateFrame to accomodate new ipv6
scan of host in URL
- (20020327) Changed the way ETags are computed for
Jigedit, to be in sycn with our server farm
- (20020321) Previously uncaught error (ie: non Protocol
ones) during lookup are now resoved by sending a 400 Bad Request
- (20020319) Implemented getErrorStream of
HttpUrlConnection per jdk1.2 API
- (20020318) Fixed the way exception filters are called
in httpd. Side effect, ErrorFilter works again
- (20020219) Added TidyPutFilter to clean HTML on
- (20020130) Fixed a bug in TE Filter that was
compressiong twice the stream (need to figure out why it was called twice
- (20020130) Added a way to avoid IP matching for
AclW3Cdb (for future jigedit use)
- (20020130) Fixed semantic of ; in the URI, with the
right info given during lookup
- (20020128) Fixed security bug regarding URI parsing,
with %00 and wrongly unescaped %5C (/)
- (20020122) Resurrected -port as an undocumented
- (20020104) Added a flag to remove the URI from default
error pages as well as the proxy module (avoiding cross scripting
- (20011112) Fixed ServletMapper to do redirect the
right way (host parsing). It was interacting with new jdk1.4 ipv6
- (20011026) Merged patches from Thomas Kopp concerning
servlets: servlet loading, behaviour of SingleThreadModel
- (20011005) Reverted 1.3 API calls to 1.2, or used
reflection to use jdk1.3 only methods in the push package
- (20011003) Added the cache push contribution to the
- (20010926) Added a specific frame to handle MKCOL and
other collection-related WebDAV methods in Jigedit
- (20010831) Fixed WebDAV implementation, it now sends
all the requested properties in a PROPFIND, with the right statuds for
the undefined ones.
- (20010831) Modified AclFilter to take benefit of
- (20010831) Added skipBody in Request, it allows a
filter to skip an eventual body in a better way than error recovery.
- (20010830) Fixed bug when Content-Type was not set (it
was set but the value of the HttpMimeType was null, defeating the usual
- (20010829) Implemented WebDAV powered Jigedit
- (20010822) Fixed If-None-Match during the creation of
- (20010822) Fixed trailing / for negotiated resources,
it was ignored, resulting in bad relative links
- (20010820) Fixed If-None-Match in HTTPFrame, it now
- (20010717) ResourceStoreManager will issue a warning
when a store raise an exception during save, the general save will
continue (it was not the case before)
- (20010711) In CvsFileFrame, cvs update is performed
also prior to a PUT.
- (20010710) Added stronger synchronization for log
- (20010705) Fixed indexer so that fake file resource
can be created, as it may be dangerous for directories, it is still
forbidden on those.
- (20010618) Fixed deadlock in DirectoryListerFrame, a
lock was not done resulting in locks done in the wrong order in
- (20010617) Fix NewStoreEntry, hashtable of loaded
ResourceReference is now cleared when the store is unloaded.
- (20010528) Fix in EditableSlider, now a textfield can
resize the boundaries of the slider, a non-extensible mode is also
- (20010513) Fixed RedirectedFrame to add
Content-Location after the internal redirect, and Referer is kept.
- (20010511) Added synchronization fo class loading in
servlet's class loader
- (20010412) Added CountInputStream, to get the actual
number of bytes read.
- (20010412) ByteArrayOutputStream now accept also
- (20010412) Implementation of Apache mod_asis
- (20010409) Fixed NegotiatedFrame to gather filters
from the selected resource, collected during the lookup, instead of the
perform. However perform may select the resource if the state is lost
because of another filter.
- (20010404) Fixed error replies for JigEdit on a 412
- (20010307) Added synchronization in nonce change to
avoid burst changes
- (20010307) Fixed HttpChallenge again for
- (20010214) Fixed log time when the server ran into
daylight saving changes.
- (20010214) Fixed compliancy bug for OPTIONS *
(Content-Length is now explicitly 0)
- (20010213) Added more information in the ToolsLister
- (20010213) Fixed bug in HttpBasicServer, when the
number of IP for a host is updated with less IPs, it may end up in a loop
- (20010212) Winie fix for password reuse with digest
- (20010209) Trace removed while chunking, thanks to Dan
- (20010120) Various fixes for persistent jdbc
- (20010111) Fix problem with servlet timeouts and
- (20010106) The use of one state was incorrect (cast
btw URL and String in some cases), normalized to URLs now)
- (20001221) Robustness fix, servlet are now killed
after the right timeout, and possible deadlocks are (hopefully)
- (20001216) Fixed TRACE method, now done directly at
the server level, as it is only used as an echo.
- (20001207) Fixed Digest Auth bug (well update of the
spec) regarding unquoted parameters in the credential (it is BAD)
- (20001207) Added more statistics about resource store
- (20001204) ServletMapper sets the original URL for
- (20001204) Logger can now log the original URL during
an internal redirect
- (20001122) Creation of NegotiatedResources in
DirectoryResource is now incremental.
- (20001114) Winie: fixed If-Match bug when remote file
- (20001114) Winie: fixed bug in dialog
- (20001109) Added support for mirroring from a non-root
resource (providing all the underneath links are relatives)
- (20001107) Connection: close requests now adds the
header automatically in the reply
- (20001107) Chunking is allowed on Connection:
- (20001103) Servlet errors are now propagated the right
way, and the monitor always released.
- (20001102) Fixed ServletWrapper, now everything goes
back to the Jigsaw model, which means valid HTTP, chunking if needed, and
- (20001102) Fixed Chunking when 0 bytes were received,
the stream was wrongly closed.
- (20001031) Fixed NullPointerException in ETag-based
PUT on Negotiated Resource.
- (20001027) Fixed slider in JigAdmin to auto expand
near the limits
- (20001024) WebDAV in Jigsaw almost done, starting
- (20001019) Compliancy fix in the cache, entity headers
removed from a Not Modified reply
- (20001017) Fixed Content-Length to 0 for a 201 Created
without a body
- (20001002) Fixed logname for october
- (20000926) Fixed caching for authenticated
- (20000926) org.w3c.util.DateParser: a parser for date
in ISO 8601 format.
- (20000926) WEBDAV: parsing of headers and XML body
- (20000926) Fixed / -> %2F for the URI trick for rdf
- (20000921) Jigsaw use another SAX Parser (xerces)
- (20000905) Fixed VirtualHostFrame for fully qualified
request in the URI on not default ports.
- (20000824) Winie: Focus management modified
- (20000824) Winie: Keyboard shortcuts added
- (20000822) Winie: preferences directory is now
- (20000818) RuntimeException throwned when the servlet
container has no ServletDirectory.
- (20000816) Bug Fixed in Winie
- (20000816) Bug fixed in ServletProperties Reader
- (20000814) Fixed Host: header checking for HTTP/1.1
- (20000814) Fixed VirtualHost lookup to use the host
part of the resolved URI instead of only the Host header
- (20000811) URL/File synchronization added in Winie
- (20000811) Fixed jigadmin to allow removing some
- (20000811) StringAttribute now accept null as a valid
- (20000810) Fixed Allow: header depending on the frame
- (20000804) Many bugs fixed in Winie
- (20000804) New buttons for Winie
- (20000803) New FileInputStream that Support Mark/Reset
- (20000803) Better error messages in Winie.
- (20000803) Fixed FowardFrame to close connection when
amgibuity can be raised by the client-side reply concerning
- (20000803) Added HTTP/0.9 support in the client side
API (should we hang people using this? ;) )
- (20000803) Fixed HTTP/1.0 request in client side when
a body is there and an error is replied (and connection cut) before the
end of the body.
- (20000727) Fixed a bug in jdbc Package.
- (20000726) Package
finished and tested with a sample jsp application.
- (20000726) Fixed PropertySet to use the new
unsafeGetValue(), it was leading to bad serialization for the admin
- (20000726) ThreadCache is now using a FIFO for the
free threads, notify->notifyAll due to some broken implementations
- (20000725) Fixed a bug in JigsawHttpServletRequest
- (20000724) Ensure FD are close in the client
- (20000724) Remove too many caching attempts.
- (20000721) Fixed synchronization in the http client
- (20000720) Fixed last deadlock in stores
- (20000713) Fixed ConfigResourceIndexer to avoid
exceptions when an invalid MimeType is set
- (20000713) Removed unnecessary headers in cached
- (20000711) Fixed a bug in
- (20000710) Fixed a deadlock in 2.1, when a resource
was created and at the same time its parent was serialized, done by doing
smarter "synchronized" calls.
- (20000707) Fixed a bug in ServletMappefFrame (pathinfo
not corectly set)
- (20000707) Fixed Slider in Jigadmin so that it checks
the bound to avoid problems
- (20000707) Fixed several deadlocks in 2.1 during
indexing+save+event processing (quite hairy part)
(20000703) Added ConfigResourceIndexer, that use a
.meta/foo.meta to override some configuration defaults.
- (20000630) Fixed Jigsaw 2.1 cache, some headers were
forgotten, also fixed a race condition leading to a leak in the precache
- (20000629) Fixed loggers to deal with HTTP/0.9
requests on dateless replies.
- (20000627) Fixed JigAdmin to correct URI not ended
with '/' (leading to an error when using jdk1.3)
- (20000623) Fixed a bug in HTTPFrame (cached
- (20000623) Resurrected -host option
- (20000623) Fixed AclRealm so that AuthUser state is
added to the request
- (20000621) Usage stats has a debug mode to show
- (20000621) Enhanced idle client removal under high
- (20000616) Added Jdbc classes for persistent
connection to a database.
- (20000613) Added Shutdown hook in 2.0 to save the
configuration on brutal exit.
- (20000608) Fixed CommonLogger, some entries were
missing when the buffer length was reached.
- (20000607) Fixed XMLResourceWriter, the list of
children was not endoded, resulting in invalid caracthers being sent.
- (20000605) Fixed CgiFrame for the weak ETag
- (20000531) Fixed JpegHeaders to release the file
- (20000525) Fixed ETag generation when a non-file
resource is there.
- (20000521) Fixed deadlock due to JVM bug in the client
- (20000418) Last changes to SocketClientFactory, the
sweep thread is now a daemon thread, and the way idle client connection
are stopped is now cleaner.
- (20000411) CgiFrame now reuses the default
configuration of the frame to produce more specific headers, previously,
the configuration was just simply ignored (it is still if the script is
generating all the headers by itself)
- (20000411) Idle clients are now removed to either
reach max free or max idle (it was max free only before that)
- (20000411) Fixed another bug in SocketClientFactory,
free clients were not always marked as free.
- (20000406) Fixed bug in SocketClientFactory leading to
lost clients, it was appearing only under high loads.
- (20000331) Fixed bug in JigsawHttpServletRequest, some
parameters were lost.
- (20000331) Fixed JpegHeaders to get the comments
written by some digital cameras.
- (20000330) Fixed NegotiatedFrame to have ordering also
for Accept: header
- (20000329) Fixed Client, to avoid bad client idle
count when extra body is skipped.
- (20000329) More status information in
SocketClientProperty, idle and free client list are now synchronized
- (20000327) Lenient parsing is now triggered by a
- (20000324) Fix in client-side Reply, chunked encoding
is now detected first as some server are sending both Transreft-Encoding:
chunked and a Content-Length
- (20000324) MimeParser has now a lenient mode (enabled
by default) to ignore incorrect headers instead of stopping the parsing
- (20000322) Reverted IO.java to jdk1.1 only calls.
- (20000322) Fixed idle count in the
SocketClientFactory, interrupted idle clients were causing idle
connections leak, leading potentially to higher load, hence reduction of
number of client kept alive.
- (20000321) New statistics scheme
- (20000317) Reused connections that were closed by the
remote server are now removed from the pool, and connection count
- (20000317) Fixed problem with getServerName and Host
with no port number. (port 80)
- (20000315) JSP Documentation
- (20000314) Fixed RequestDispatcher with Virtual
- (20000314) Fixed return code when servlet is
- (20000313) Fixed getServletPath for included servlets
- (20000313) Fixed HTML4 compliancy of container
listing. Moved HTMLGenerator to use HTML4.0 transitional dtd.
- (20000310) Documentation layout modified.
- (20000310) Fixed init of rotation level in
- (20000310) Fixed HttpBasicConnection to avoid caching
IP forever. Unfortunately we can't use the DNS ttl...
- (20000309) Fixed deprecated calls in many classes
- (20000309) Fixed JpegComFrame to not rely on jdk
- (20000307) Fix for jsp in ServletMapperFrame
- (20000303) Fixed ServletPropertiesReader, inited flag
was not updated.
- (20000303) Fixed getRealPath method in
- (20000301) Fixed default port recognition in the
lookup phase of the proxy
- (20000229) Fixed synchornized calls in HttpBasicServer
to avoid a deadlock
- (20000225) Added support for log rotation in all the
loggers, with multiple levels of rotation
- (20000224) Fixed clone in httpd so that https can now
be run with the Unix stuff before.
- (20000222) Fixed init code of AttributeHolder
- (20000222) Fixed race condition in resource store
- (20000218) Reindex locally (not recursively)
- (20000218) HTTPFrame can generate index for
- (20000218) HTTPFrame can have multiple index.
- (20000216) JpegComFrame now uses ;type for
Content-Location and direct queries
- (20000216) Fixed LookupState to use ; in the
delimiters for URI
- (20000216) ServerHandlers are now started in two step,
preinit (properties and socket bindings), then run, it fixes a problem
with chroot and Jigsaw 2.1 serializer, and it is cleaner ;)
- (20000215) Fixed the statistics frame (used thread,
style and such)
- (20000215) Servlet API 2.2 implemented (except the war
- (20000209) Relocate now uses a request state to pass
the original URL of the request, used in the container redirect on
- (20000207) Fxed HttpAccept so that the contructor now
uses the quality factor as it should.
- (20000202) Redone the Relocate and Redirect frames,
thay are now allowing you to do redirect for some methods only (all by
- (20000201) Fixed a bug in relocate frame preventing
query string to be passed to the redirected URI.
- (20000201) Fixed RelocateFrame so that internal
redirect can go through virtual hosts.
- (20000128) bug fixed preventing binding on a specific
- (20000121) bug fixed in RealmCatalog &
- (20000120) bug fixed in servlet pre-loading.
- (20000113) Fixed a lookup bug in ProxyFrame during
- (20000113) servlets documentation updated.
- (20000112) servlet.properties can now be used to
- (20000112) Added support for a shutdown hook, to
ensure synchronization of the stores
- (20000111) Added getClone and addParameter to
MimeType, to avoid doing too much dirty work in the code.
- (20000111) Added Charset support so that an indexer
can match a charset and update the defaults directly.
- (20000111) Fixed a potential bug, when the Hashtable
of a frame was called with frames, but the size of the frame array equals
- (19991210) Fixed an unload notification that was not
passed to frames
- (19991202) Added getSMaxAge/setSMaxAge in HttpMessage
to deal with expiration on shared caches.
- (19991201) Fixed a deadlock in the
- (19991201) Fixed an extra Content-Type sent in the
- (19991130) ChunkedInputStream now notifies an EOF if
it happens while you ask to read for more bytes than available (was
potentially waiting forever before that!)
- (19991130) Fixed HttpBasicServer, when the client part
has to do a two stage HTTP/1.1 request on behalf of a 1.0 client (proxy),
then 100 Continue replies are now discarded.
- (19991129) Added the NoCache filter which transforms
Pragma: no-cache into Cache-Control: max-age=0, used to fix some HTTP/1.0
client brokenness to allow a better use of the cache, especially while in
- (19991126) Fixed jigsaw.Reply, chunking, see
- (19991126) Fixed ChunkedOutputStream, it is now more
optimized and a potential char to byte convertion problem has been
removed. Also, the closing of the stream has been fixed.
- (19991125) Fixed Base64 encoder and decoder, to avoid
a potential char to byte conversion error, no more deprecated method
- (19991125) Fixed cached entry invalidation, it now
marks the entry to be revalidated next time rather than removing it
directly from the cache (helps disconnected operation).
- (19991125) Fixed header update during revalidation not
matching 200 or 304 (ex: auth failed)
- (19991116) modified the attribute name for last
modified, as it was interacting badly with revalidations.
- (199910 25) JigsawRequestDispatcher in servlet is now
cloning the request before an include or a forward
- (199910 21) Fixed the upgrader according to the latest
(jdk1.2.1_04 and 1.3) specifications. The upgrade has been tested on the
new jigedit, used to edit this entry!
- (19991019. yl) Fixed MimeType matching to have a
better ordering, maybe more lovel of matching will be added in the
future, if needed
- (19991019) Announced Winie, the HTTP standalone PUT
and GET tool.
- (19991018) New class to infere MimeTypes.
- (19991013) ImageComments may now be PUT, provided you
use the right ETag.
- (19991011) Code cleanup, there were ambiguities in one
class about which method to call that SUN's compiler didn't spotted.
- (199910 06) JpegCommentHandler now can return readers
and writers of comment within a jpeg stream, bug fix for COM12 images
(infinite loop). CommentWriter completed.
- (1999 09 23) CacheFilter no longer caches replies with
Set-Cookies because of loops, it breaks the model but it is required to
work well :( )
- (19990923) Fixed bug in HttpMessage, The proxy stopped
to forward the SetCookie header because of a modification I made.
- (19990923) Fixed 2.1 bug in FileAttribute. It can now
pickle a String (mandatory for remote admin)
- (19990922) JpegComFrame, to allow getting directly the
text chunks out of a jpeg image (Content Negotiation)
- (19990920) Bug fixed: invalid XML characters are now
encoded (eg: & => &)
- (19990920) Added a more clever (and expensive) loop
check in the Proxy, it check for the IP and not for the host only
- (19990906) HttpRange can now be created using -500,
500- using "-1" as the default value
- (19990831) Client now gracefully skip the body of the
request if it is sent (due to problems, the 100-continue should not be
trusted as there maybe some timeouts involved)
- (19990818) directory listing now ends the URI of the
containers with / to avoid one redirection (be nice the the net!)
- (19990818) lister in Jigedit now put the action in the
FORM tag, as it should
- (19990817) Now checking for redefined attribute
- (19990809) PutList now has a default "unknown" author
when no authentication is done
- (19990809) Namespace added to jxml.
- (19990809) Servlet bug fixed in getResource()
- (19990806) Logger has now a property to specify the
- (19990805) Servlet bug fixed: now servlets are
destroyed only if all connections are closed.
- (19990802) Wrote documentation about the new store
- (19990801) Upgrader tool finished (convert classic
store to XML).
- (19990722) Logger can now be changed while the server
- (19990722) Servlet timeout could be disabled (if
equals to -1)
- (19990722) Servlet: session cookie maxage could be
equals to -1 now.
- (19990716) first working version of the XML based
- (19990715) SSIFrame now cut the connection, to cope
with problem between servlets (write directly on the stream) and
- (19990715) Fixed ServletTimeout unit
- (19990713) Fixed Language negotiation to match well
the subtags (required to distinguish zh-tw from zh-cn)
- (19990701) Fixed content negotiation for language and
the level of rejection (only bad content types are rejected now), also
"*" is now a valid language.
- (19990630) Fixed ResourceStoreManager initialization
which was causing trouble when the root resource was changed
- (19990620) Changed ACL api, so that every information
can be taken from the Request to help the authentication process.
- (19990607) Fix in content negotiation, Language is now
handled in a better way, with language modifier, request order.
- (19990607) Port change now fixed for main server.
- (19990607) Added a specific feeder for realm's user
- (19990604) Fixed the infamous cookie bug, now several
cookies => several Set-Cookie headers.
- (19990604) Added Bind Address, so that multiple server
on a machine with many interface can be opened, each on a specific
interface (old style virtual hosting)
- (19990604) Fixed loop in proxy when set to port 80 and
when a page on the server itself is requested
- (19990521) Added ProxyAuthenticate rule to
ProxyDispatcher, it allows client to use a Proxy-Authenticate header even
if they can't set it.
- (19990520) Added MimeTypeArrayAttribute,
StringArrayEditor can be used to edit MimeTypeArray.
- (19990504) Added SimpleGrepFilter in jigedit to simply block
unwanted strings in only text/* entities.
- (19990504) Cached VaryResource are now checking ETags the right
way, no more 304 replies when a normal request was sent if a revalidation
- (19990503) Sort-of fixed bug in the port number change (It tries
to restart the server, with or without luck).
- (19990503) Fixed max connection and notification of waiting
threads during deletion of an old kept-alive connection.
- (19990429) Fixed timestamp problem with modification in the past
of file resources
- (19990429) RedirecterFrame now handles PATH_INFO
- (19990429) Added RegexRedirectFilter, which uses the oromatcher
package. We can't distribute that package due to licensing conditions,
and it may be a pain for people wanting to compile Jigsaw, it will be on
CVS once a regexp package will be in org.w3c.tools.regex :)
- (19990428) Fixed ResourceEvent bug (unloaded resource
should not received event)
- (19990428) Fixed ServletRequest to merge url
parameters and body ones.
- (19990428) Fixed cache to avoid blocking on non-sized multipart
documents in the cache (neverending wait for connection cut (size
- (19990427) First implementation of ACL for
Authentication (Basic and Digest) (AclFilter associated to an
- (19990426) Fixed servlet getReader behaviour to get the right
encoding (taken from the request headers)
- (19990421) Added more headers for Bad Request
- (19990421) Cache is now sending the right Content-Length with
- (19990419) Improved Idle Client garbage collection scheme,
allowing smoother operation when load occurs (with performance
- (19990419) Fixed wrong Bad Request on a cut connection (no
influence as the connection was cut anyway)
- (19990419) Fixed Null Pointer trace when "help" was called with
no resource selected (jigadmin2)
- (19990419) Bad file permission check now raises an exception
instead of (sometimes) blocking.
- (19990415) Fixed makefiles
- (19990414) Fixed null value of MimeAttribute in old Jigadmin to
default to *none* as expected.
- (19990413) Fixed bug in servlet indexer with full package
- (19990409)cvs add in CvsFileFrame now checks if the object sent
is binary or not (based on Content-Type)
- (19990408) Fixed part of Bad Request handling, they are now
processed as they should for missing Host. still work to do for bad
request due to incorrect http header values sent.
- (19990407) MirrorFrame now tweak the redirects also for
- (19990407) Servlets: Headers are sent when the servlet
start to write on the stream, not before.
- (19990407) Md5 constructor fixed to allow encoding string.