Resin Download

For testing and starting out.
  • Java EE 6 Web Profile
  • World's fastest web server
  • Watchdog process
  • No third-party dependencies
  • Quercus
For large production applications.
  • Java EE 6 Web Profile
  • World's fastest web server
  • Watchdog process
  • No third-party dependencies
  • Quercus Professional
  • Dynamic cloud servers
  • Distributed sessions
  • Distributed JCache
  • Smart load balancer
  • OpenSSL integration
  • Fast proxy cache
  • Cluster health monitoring
  • High performance socket JNI
  • Enterprise support options

Resin 4.0 is the current stable release branch suitable for production use.

Resin 4.0.45



Resin 4.0.45 - bug fix release

Change List

  • session: change shutdown state machine to allow getAttribute on invalidating session (#5919, rep by Shinomiya Nobuaki)\
  • build: remove LoadTimeWeaver (#5923, rep by M. Barker)
  • watchdog: change default -Xss to 1m (#5927, rep by anupmondal)
  • servlet: check for dual registration of ServletContextListener (#5893, rep by Matias Lagerwall)
  • jsp: share classloading of .tag files (#5914, rep by nfedorov)
  • dyn-server: on server restart, allow same address:port (#5903, rep by Tom Pohl)
  • dyn-server: added lock in resin-data to ensure multiple servers cannot use same data (#5902, rep by Tom Pohl)
  • ssl: allow OpenSSL ECC support for forward secrecy (#5906, rep by Nick Stephens)
  • db: add validation and restart for corrupted BTree index (#5912, rep by wesleywu)
  • build: allow for JDK 8 build (#5901, rep by dave)
  • health: removed perm gen checks (#5910)
  • ejb: ejbTimer.cancel() needs to remove timer from getTimers() (#5891, rep by bbik)
  • servlet: FileService character-encoding should exclude images (#5907, rep by Mathias Lagerwall)

Resin 4.0.44



Resin 4.0.44 - bug fix release

Change List

  • class-loader: excessive reread of jar certificates (#5850, rep by konfetov)<\ /li>
  • log: add sanity check for log rollover (#5845, rep by Keith F.)
  • deploy (git): use utf-8 to store path names (#5874, rep by alpor9)
  • websocket: setTimeout was being overridden by Port keepaliveTimeout (#5841, \ rep by A. Durairaju)
  • jni: on windows, skip JNI for File metadata like length (#5865, rep by Mathi\ as Lagerwall)
  • db: isNull issues with left join (#5853, rep by Thomas Rogan)
  • websocket: check for socket close on startTextMessage (#5837, rep by samadam\ s)
  • log: when log rollover fails, log to stderr (#5855, rep by Rock)
  • filter: allow private instantiation (#5839, rep by V. Selvaggio)
  • rewrite: added SetRequestCharacterEncoding (#5862, rep by Yoon)
  • health: change health check timeout to critical instead of fatal to allow fo\ r development sleep (#5867)
  • alarm: timing issue with warnings and alarm extraction (#4854, rep by SHinom\ iya Nobuaki)
  • session: orphan deletion throttling needs faster retry time (rep by Thomas R\ ogan)
  • mod_caucho: slow PUT/POST uploads with Apache 2.4 (#5846, rep by Stegard)

Resin 4.0.43



Resin 4.0.43 is a bug fix release.

Change List

  • openssl: use SSL_free in connection close
  • mod_caucho: slow PUT/POST uploads with Apache 2.4 (#5846, rep by Stegard)

Resin 4.0.42



Resin 4.0.42 bug fix release

Change List

  • websocket: read loop needs to use getAvailableBuffer() (ep by Arun Durairaju)
  • bam: too much logging for queue full (rep by Dan Stilts)
  • bam: use smallest queue for remoting instead of round-robin to handle frozen connections (rep by Dan Stilts)
  • comet: cleanup of comet state machine (#5826, rep by S. Nobuaki)
  • cxf: missing servlet config for CXFProtocolServletFactory (#5825, rep by balaiitm)
  • servlet: setHeader("foo", null) now removes header value (#5824)
  • db: fixed expires and orphan queries to remove expired sessions (#5748, rep by Thomas Rogan)
  • ejb: added scan-persistence-xml to <ejb-server> to allow disabling of persistence-unit scanning (#4908)
  • ssl: update openssl option processing. Update SSL_free/SSL_new
  • health: add snapshot-jmx and snapshot-heap-dump to avoid issues on weekly reports (#5495, rep by ssbbartgroup)
  • chdir to $RESIN_HOME before starting (#5668, rep by balaiitm)
  • apache: NPE issues with Apache locking (#5747, #5744, rep by vicsanca, ssmax)
  • apache: configure/make issues with Apache 24
  • jni: add loading of classes/native/*.so (or native/*.so in a jar) (#5760, rep by William Damage)
  • openssl: SSL field (ssl_sock) value was being cleared by std.c (#5815, rep by Nick Stephens, Sarah Gillespie)
  • openssl: SSLv3 is now disabled by default (#5819)
  • health: StartProfiler was saving data in text, not json (#5736, rep by S Nobuaki)
  • admin: load-balance connection state could get stuck in "starting" on certain success cases (#5653)
  • async: on comet restart, allow the previous state to be completed (#5684, rep by KC Baltz)
  • async: send 500 on empty response with timeout (#5570, rep by Shinomiya Nobuaki)
  • async: issues with starting async in forward (#5544, rep by Shinomiya Nobuaki)
  • cache: update FileServlet to generate ETag including mime-type to support mime-type updates (#5761, rep by M. Lowe)
  • servlet: multipart parts were not supported for namedDispatcher forward (#5543, rep by Shinomiya Nobuaki)
  • dbpool: on manual init(), do not register JNDI, CDI, or JMX (#5595, rep by Shinomiya Nobuaki)
  • webapp: sort initializers by web-fragment (#5514, rep by beamerblvd)
  • ring-queue: offer with no wait and full requires a wake before blocking (#5599)
  • jsp: allow binary output stream with non text/ contentType (#5027)
  • async/gzip: issues with async combined with gzip (#5033)
  • rpm: added %postun to shutdown resin (#5635, rep by S. Gillespie)
  • i18n: classloading issues with utf-8 names (#5549, rep by konfetov)
  • database: use JDK's ReentrantReadWriteLock instead of custom Resin lock (#5624, rep by Shinomiya Nobuaki)
  • database: on close, fsync validation is does not allow for late writes (#5636, rep by Shinomiya Nobuaki)
  • servlet: relax checking of public for Filter constructor (#5701)
  • log: limit log message database (#5802, rep by R. Murayama)
  • database: force remove of old file when file is created (#5803, rep by R. Murayama)
  • jni: only epoll is supported as select-manager (#5811, rep by qjian)
  • jni: on windows use File.lastModified() instead of stat result to avoid windows DST bug (rep by Jason Barr)
  • health: add <mail> to PdfReport configuration (rep by Steffen Busch)

Resin 4.0.41



Resin 4.0.41 bug fix release

Change List

  • health: update PdfReport on start to log warning messages for mail (#570, rep by \ D. Tapsell)
  • servlet: ServletContextListener was called twice when registered from ServletCont\ ainerInitializer (#5611, rep by Gerrit Janssen)
  • scheduled-task: check for early task call (#5709, rep by Daniel Jimenez)
  • gzip: gzip response needs to filter out content-length (#5777, rep by wxiaoguang)\
  • jni: update EINTR processing for poll/nonblocking read (#5627, rep by bean)
  • log: ensure rollover worker is called after flush (#5785, rep by mros2stf)
  • log: missing timestamp due to buffer fill condition (#5794, rep by Daniel Jimenez\ )
  • health: add "DISABLED" state to HealthStatus for disabled health checks (#5711, r\ ep by Shinomiya Nobuaki)
  • dbpool: reduce logging level for dbpool driver close, because exception are expected in Mysql (#5637, rep by Srikanth Pulikonda)
  • cli: added -timeout to deploy command (#5598, #5597)
  • openssl: add +tlsv1.1 and +tlsv1.2 (#5682, rep by Sarah Gillespie)
  • servlet: welcome-file processing with query string creates duplicate for getParam\ eterValues (#5642)
  • servlet: content-type and application/json (#5565, rep by 54chen)
  • health: add ping-port attribute to HttpStatusHealthCheck in health.xml (#5572)
  • async: allow dispatch() in onTimeout() (#5779, rep by azuo_lee)
  • ssl: jni ssl mmap support must go through OpenSSL API (#5790, rep by N. Kikhia)
  • jni: calculate_poll_result could return invalid value (#5632, rep by bean)
  • session: check for NPE on shutdown (#5633, #5681 rep by M. Jindal)
  • configure: change ln -sfT to ln -sf for Mac install (#5717, rep by wileysaw)
  • io: null source check on read (#5731)
  • config: jvm-arg not properly picking up dynamic (#5793, rep by daniel)<\ /li>
  • jni: use _filelengthi64 for windows JniRandomAccessFile.getLength (#5733, rep by \ Mattias Lagerwall)
  • config: ResinEnv exception declaration in init() (#5737, rep by matthiasblaesing)\
  • server: add NPE check for generateController (#5744, rep by Shinomiya Nobuaki)
  • file: added TransmitFile for windows (#5784)
  • servlet: error-page for 400-bad request NPE (#5749)
  • servlet: loadOnStartup was incorrectly enabled for @WebServlet even when unset (#\ 5778, rep by Marko Asplund)
  • load-balance: utf-8 encoding in urls (#5785, rep by R Cohen)
  • access-log: rollover-count was not property matching files with .gz extension (#5\ 789, rep by Uv Wildner)
  • jdbc: UserStatement.getWarnings() needs to work even after close (rep by Ole Dalg\ aard)
  • health: add critical/fatal messages to health shutdown message (#5762, rep by J. \ Meyer)
  • resin.xml: moved default cluster-default.xml to classpath and defaulted app-defau\ lt.xml to be dir-relative (#5762, rep by M. Lowe)
  • @WebSocket: interference between @WebSocket and CDI/JSP EL (#5776, rep by marko_a\ splund)
  • jsp-el: cookie.containsKey() fix: (#5683, rep. by Jason Wang)


To help us better understand our users, please be kind enough to provide your information.

Older releases are available in the download archive.