Resin Pro 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 Pro 4.0 is the current stable release branch suitable for production use. You can also download Resin Pro 3.1 or try out alpha builds of the upcoming Resin 5.0 (alpha).

Resin Pro 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 Pro 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 Pro 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)

Resin Pro 4.0.40



This release is a maintenance release. It contains an XSS security bug fix for the ISO-8859-1 encoder where specially-crafted characters could pass through unescaped to the client.

Change List

  • classLoader: getResource() should skip broken jars (#5706, rep by Constantinos Karantzas)
  • servlet-env: bind java:comp/BeanValidation (#5587, rep by Matthias Jiderhamn)
  • vfs: normalize windows drive letters to lower case to avoid dups (#5592, rep by Matthias Jiderhamn)
  • bam: increase default timeout for remote deploy (#5652, rep by Matthias Jiderhamn)
  • xa: clear _suspendState on transaction resume for memory issues (#5647, rep by Matthias Jiderhamn)
  • i18n: iso-8859-1 encoding issue with non-latin-1 characters needs to return error character (rep by Yoel Gluck)

Resin Pro 4.0.39



This is a maintenance release.

Change List

  • session: session-mode=before-header was disabling reloading on secondary servers (#5639, rep by Thomas Rogan)
  • resin: disable-soft command timeout error fix (#5656, rep by Sarah Gillespie)
  • resin: shutdown-wait-max not propagating to ShutdownSystem fix (#5660, rep by Shinomiya Nobuaki)
  • resin-admin: cross-site scripting vulnerability in /resin-admin (#5669, rep by G. Krstic)
  • jsp: taglib defined listeners should be called before Filter's init() (#5659, rep by Mattias Jiderhamn)
  • quercus: SimpleXMLElement->xpath() does not work for relative queries (#5622, rep by G. Krall)
  • quercus: SimpleXMLElement->children() returns null values (#5432, rep by ckir)
  • quercus: DOMDocument->schemaValidate() not implemented (#5613, rep by G. Krall)
  • quercus: empty() needs to call ArrayAccess->offsetExists() (#5620, rep by tssets)
  • quercus: spl_object_hash() not implemented (#5623, rep by G. Krall)
  • quercus: cannot execute multiple PDO statements on the same connection (#5625, rep by remaus)
  • quercus: nowdoc does not work (#5626, rep by remaus)
  • quercus: parent classes needs to call its version of private methods within its scope (#5631, rep by G. Krall)
  • quercus: ReflectionParameter::getClass() returns null (#4863, rep by ds82)
  • quercus: Parent keyword does not work inside a Trait (#5581, rep by tobia)
  • quercus: class_alias() is not implemented (#5443, rep by jsnoriegam)
  • quercus: quercus namespace issue in compiled mode (#5640, rep by R. Emaus)
  • quercus: simplexml children()->foo does not work for nodes with only text (#5655, rep by G. Krall)
  • quercus: rename META-INF/services/* so JBoss doesn't parse them (#5654, rep by G. Krall)
  • quercus: JsonSerializable class not implemented (#5504)
  • quercus: add FILTER_SANITIZE_STRIPPED as an alias of FILTER_SANITIZE_STRING (#5663, rep by M. McHugh)
  • quercus: implement filter_input(FILTER_UNSAFE_RAW) for phpMyFaq (#5661, rep by M. McHugh)
  • quercus: implement FILTER_SANITIZE_SPECIAL_CHARS (#5665, rep by M. McHugh)
  • quercus: force the java Mysql driver to use prepared statements (#5671, rep by R. Emaus)
  • quercus: quercus cannot start on Wildfly (#5674, rep by G. Krall)
  • quercus: unpack("H*") returns nothing (#5676, rep by M. Dykman)
  • quercus: clearstatcache() has 2 optional arguments (#5687, rep by G. Krall)
  • quercus: stream_is_local() is not implemented (#5685, rep by G. Krall)
  • quercus: curl_multi_init() suite of functions not implemented (#3516, rep by koreth)
  • quercus: SplObjectStorage class not implemented (#5696, rep by G. Krall)


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

Older releases are available in the download archive.