<document>
<header>
<title>Resin 3.0 Change Log</title>
</header>
<body>

<s1 title="Resin Change Log">

<ul>
<li><a href="changes-2.xtp">Resin 2.1 changes</a></li>
<li><a href="http://caucho.com/resin-3.1/changes/changes.xtp">Resin 3.1 changes</a></li>
</ul>

<s2 title="3.2.1">
<ul>
<li>web-app: add expand-fileset-cleanup to &lt;web-app (#3001, rep by Bill Au)</li>
<li>jni: openssl not timing out properly (#2988, rep by Tom Hintz)</li>
<li>mod_caucho: use time(0) instead of request->time (#2974, rep by ahoogerhuis)</li>
<li>mod_caucho: use ssl_var_lookup for SSL variables (#2871, rep by Michael Schiemer)</li>
<li>jms: ejb-message-listener needs to use createXASession() call for XA sessions (#2937, rep by Reggie Vito)</li>
<li>jni: jni_vfs.c missing #include &lt;limits.h> (#2992, rep by thintz)</li>
<li>config: include files for ${__DIR__} with spaces not properly handled (#2891, rep by cperz)</li>
<li>quercus: dependency checking needs to use timeout (#2981, rep by Steven Grimm)</li>
<li>quercus: compilation thread was blocking the execution thread (#2991, rep by Scott Landshof)</li>
<li>(2008-10-08) error-page: xss issue with utf-7 encoding (#2965, rep by Moshe Ben-Abu)</li>
<li>filter: added HeaderFilter for standard headers like P3P, and like the Apache "Header" command (#2953, rep by Sean Moore)</li>
<li>comet: client disconnect needs to set isClosed flag (#2924, #2961, rep by Martin Thompson)</li>
<li>jstl: Added org.xml.sax.XMLReader support for x:parse doc attribute</li>
<li>quercus: Array expression fails to compile (#2986, rep by koreth)</li>
<li>quercus: Call-time pass by reference returns screwy results from substr() (#2973, rep by koreth)</li>
<li>quercus: printf() decimal format specifier doesn't work (#2972, rep by koreth)</li>
<li>quercus: DOMImplementation creates XML parsers instead of HTML (#2975, rep by bago)</li>
<li>quercus: moodle support (#2929, rep by D. Savill)</li>
<li>quercus: Can't mix key/value and nonkeyed array autoinitialization (#2948, rep by koreth)</li>
<li>quercus: iconv() doesn't support target encoding modifier (#2255, rep by koreth)</li>
<li>quercus: Static class method can't access private instance fields (#2933, rep by koreth)</li>
<li>quercus: array_fill_keys() needs to copy, not reference, values (#2930, rep by koreth)</li>
<li>quercus: mb_detect_encoding not implemented in Quercus (#2868, rep by iRideSnow )</li>
<li>mod_caucho: potential DOS issue with mod_caucho and virtual hosts (#2950, rep by Pieter Schoenmakers)</li>
<li>file: remove cache timeout in FileServlet for coherency, since
the performance is handled by the proxy cache (rep by Vinod Mehra)</li>
<li>host: modified default virtual host handling to use "default" as the host name instead of "" (#2917, rep by Brad Bourne)</li>
<li>build: add manifest version automatically as part of build (#2952, rep by stbu)</li>
<li>database: increased default database connection-max dramatically and add threadDump if it's exceeded (#2897, rep by Dennis Devota)</li>
<li>jsp: jsp:param for include needs to use form-url-encoding (#2838, rep by bearbibeault)</li>
<li>boot: resin.jar "status" returns the PID of the started server (#2855, rep by Jens Christensen)</li>
<li>server: scheduled-task needs to use Alarm.getExactTime to avoid extra calls (#2894, rep by Riccardo Cohen)</li>
<li>server: http proxy handle multiple response headers (#2900, rep by ksullivan)</li>
<li>jsp: tag fragment with tag variable compilation failure (#2904, rep by Herve Prisciandaro)</li>
<li>jsp: taglib prefix was stored across jsp/tag files (#2936, rep by jlawrie)</li>
<li>log: access logging adds '%v' for virtual hosts (#2949, rep by Alex Sharaz)</li>
<li>quercus: type hinting checks for null (#2886, rep by PeterJanRoes)</li>
<li>quercus: stream_get_meta_data not properly recording timeouts (#2944, rep by koreth)</li>
<li>jms: jdbc/transaction session not properly setting expires time (#2939, rep by Vinay Reddy)</li>
<li>quercus: regression for array assignment (#2946, rep by koreth)</li>
<li>quercus: regexp with empty subexpression and disjunction (#2892, #2943, rep by koreth, cperz)</li>
<li>quercus: support for (?R) in regexps (#2755, rep by atijms)</li>
<li>jsf: Ice Faces Sample Apps throw exception (#2908, on behalf Eric T.)</li>
<li>quercus: $a[3] = 'n' was modifying constants when $a is string (#2940, rep by koreth)</li>
<li>quercus: php_uname('n') needs to return host name (#2931, rep by koreth)</li>
<li>quercus: back out private handling (#2933, rep by koreth)</li>
<li>quercus: try-catch not analyzed properly for variables (#2934, rep by koreth)</li>
<li>quercus: Java method with Value needs to be converted to avoid Var (#2935, rep by koreth)</li>
<li>quercus: array to object conversion was dropping integer keys (#2932, rep by koreth)</li>
<li>quercus: isModified was not properly checked for compiled pages (#2926, rep by koreth)</li>
<li>quercus: dynamic method with more than five arguments causing errors (#2927, rep by koreth)</li>
<li>install: ./configure --prefix; make install wasn't copying doc/admin correctly (#2898, rep by moffermann)</li>
<li>hessian: proxy equals should return false if the compared object is a non-matching proxy (#2878, rep by Christian Campo)</li>
<li>hessian: missing case for long[] deserialization (#2909, rep by aloksingh)</li>
<li>quercus: parsing php from Java string could run into encoding issues (#2920, rep by rgnitz)</li>
<li>quercus: __destructor support (#2417, rep by Carl Lobo)</li>
<li>quercus: conditional function refactor (#2918, rep by koreth)</li>
<li>quercus: add require-source='false' and allow php to be deleted with compilation (#2217)</li>
<li>quercus: class cache issues for performance (#2915, rep by koreth)</li>
<li>quercus: Regex option 'A' ignored (#2907, rep by wikipo)</li>
<li>quercus: PDO::getAvailableDrivers() not implemented (#2914, rep by A. Bonat)</li>
<li>quercus: Dynamic members do not work properly (#2887, rep by PeterJanRoes)</li>
<li>quercus: unserialize does not work properly with lot of dereferencing (#2697, rep by perololo)</li>
<li>quercus: Calling mysql_close() twice results in NPE (#2911, rep by koreth)</li>
<li>quercus: unserialize error for object references (#2895, rep by koreth)</li>
<li>quercus: Quercus serialize/unserialize doesn't recognize protected and private field markers (#2910, rep by koreth)</li>
<li>quercus: MySQL code assumes only one database name is ever used (#2880, rep by koreth)</li>
<li>quercus: Add option to disable database connection pooling (#2877, rep by koreth)</li>
<li>quercus: Username and password not used when connection pooling turned off (#2905, rep by koreth)</li>
<li>quercus: Can't use "continue" any more in loop statements (#2901, rep by koreth)</li>
<li>quercus: Class method can't access private array field (#2882, rep by koreth)</li>
<li>quercus: long2ip() not implemented (#2881, rep by koreth)</li>
<li>quercus: Quercus program cache is too small for large code bases (#2884, rep by koreth)</li>
<li>quercus: Bogus "break" causes compilation failure (#2879, rep by koreth)</li>
<li>quercus: diskfreespace(.) always return 0 (#2861, rep by mingfai)</li>
<li>quercus: $object->x->x does not trigger __get in array define (#2874, rep by nbzx)</li>
<li>quercus: $this->x does not trigger __get and trigger __set twice (#2873, rep by nbzx)</li>
<li>quercus: $a * 1000000 not properly convert for non-long values (#2552, rep by lee)</li>
<li>quercus: pg_fetch_assoc for bit(32) field was not calling correct jdbc method (#2506, rep by damjan)</li>
<li>quercus: refactor database to avoid JdbcConnection close issues (#2721, rep by paulberto)</li>
<li>quercus: pg_free_result needs to return true (#2546, rep by gjvc)</li>
<li>quercus: mcrypt padding issues with blowfixh (#2561, rep by gjvc)</li>
<li>quercus: in_array with Java adapter wasn't implemented (#2889, rep by Heimo Laukkanen)</li>
<li>quercus: tempnam wasn't removing file at end of execution (#2097, rep by A Sharaz)</li>
<li>quercus: debug_backtrace line numbers in compiled mode (#2158, rep by koreth)</li>
<li>quercus: debug_backtrace arguments (interpreted only) (#1154, rep by koreth)</li>
<li>quercus: add public QuercusScriptEngine method to allow for security overriding (#2072)</li>
<li>quercus: NPE in curl_exec (#2902)</li>
<li>quercus: Exception trace was not catching top location (#1774, rep by U Wohlfeil)</li>
<li>quercus: json utf-8 fixes (#2092, rep by hendler)</li>
<li>quercus: add PEAR path automatically to include path (#844)</li>
<li>deploy: .git repository should only be created when used (#2885, rep by iRideSnow)</li>
<li>server: add server to default error page (#2903, rep by Alex Sharaz)</li>
<li>comet: avoid skip() at end of request for a comet call so input can be buffered (#2870, rep by David Peterson)</li>
<li>(2008-09-02) quercus: Page cache NPE (rep by Steven Grimm)</li>
<li>quercus: getSpecialRef loop (rep by Paul Fisher)</li>
<li>example: possible xss in example (rep by Antonio Varni)</li>
<li>admin: ResinAdmin.getServer() should return null if server isn't ready (rep by Vinod Mehra)</li>
<li>quercus: issues with compiled continue statement with following content (#2156, rep by koreth)</li>
<li>quercus: private field checking (#585)</li>
<li>ext: upgrade to javamail 1.4.1 (#2863, rep by Matt Pangaro)</li>
<li>quercus: Can't compile class with magic set/get/call methods (#2857, rep by koreth)</li>
<li>quercus: curl_version() not implemented (Wordpress OpenID plugin) (#2852)</li>
<li>quercus: Joomla 1.5 not working (#2302, rep by rfisk)</li>
<li>quercus: call_user_method_array() not implemented (Wordpress) (#2854)</li>
<li>quercus: Can't compile class with abstract method (#2851, rep by koreth)</li>
<li>quercus: Can't compile function that calls func_get_args() (#2850, rep by koreth)</li>
<li>quercus: SugarCRM 5.0 working (#1011, rep by Vic)</li>
<li>quercus: Using Quercus with symfony under Glassfish/Tomcat (#2795, rep by Timo)</li>
<li>quercus: WordPress 2.0.11 and 2.5.1 installers get stuck in step 2 (#2664, rep by falko)</li>
<li>quercus: argument by reference and self:: (#2837, rep by wikipo)</li>
<li>quercus: ereg_replace() vertical brace bug (#2835, rep by stephaneeybert)</li>
<li>quercus: DotClear 2 doesn't work (#2828, rep by ebourg)</li>
<li>quercus: db operation not allowed after ResultSet closed (FormTools) (#2811, rep by B. Youngblood)</li>
<li>quercus: Conditional function definition fails to compile (#2830, rep by koreth)</li>
<li>isapi: chunked encoding needs to filter out content-length (#2849, rep by Trieu Truong)</li>
<li>jmx: update _parent handling for environment JMX to avoid loop (#2848, rep by Rajasekar Elango)</li>
<li>jms: jdbc wasn't properly setting binary length (#2856, rep by Richard Grantham)</li>
<li>hessian2: ref production changed to ref ::= R &lt;int></li>
<li>hessian2: added compact date encoding (0x65) (rep by Fredrik Olsson)</li>
<li>hessian2: 'v' and 'V' changed to be fixed and variable length, w/o Hessian 1.0 compat (#2823, rep by Niclas Olofsson)</li>
<li>jni: when socket read fails due to ClientDisconnect, close the socket (#2843, rep by Malte Muenke)</li>
<li>mail: added password authenticator support (#2822, rep by Daniel Lopez)</li>
<li>watchdog: -D as Resin argument should be passed to child (#2841, rep by Rob Lockstone)</li>
<li>admin: when JMX does not contain "Tenured Gen" or "Perm Gen", issue warning and continue (#2839, rep by George Buschbeck)</li>
<li>quercus: callbacks with "A::foo" were not properly interpreted (#2836, rep by wikipo)</li>
<li>watchdog: watchdog start needs synchronization to handle sites with multiple servers (#2840, rep by Philippe Collard)</li>
<li>mod_caucho: static file handling for ;jsessionid= and query (#2825, rep by ckiehl)</li>
<li>config: allow resin:if in &lt;server> to define &lt;http> (#2802, rep by Dana P'Simer)</li>
<li>quercus: apc_cache_info needs @Optional 'limited' param (#2833, rep by koreth)</li>
<li>amber: update cache size to 32 (#2821, rep by Riccardo Cohen)</li>
<li>quercus: mail with to in the extraHeaders argument (#2754, rep by atijms)</li>
<li>host: regexp vs static host priority (#2813, rep by Shane Cruz)</li>
<li>jsp: virtual host should not add 'name' as webbean value (#2807, rep by hpri)</li>
<li>jsp: validation of tag dynamic-attributes generated improper XML (#2808, rep by hpri)</li>
<li>quercus: added php.ini for session.cookie_version="0" (#2649, rep by sgraf)</li>
<li>quercus: precedence for $$foo->bar() (#2812)</li>
<li>install: modified conf/minimal.xml for true minimal configuration (#2630, rep by wirah)</li>
<li>quercus: all errors get logged at FINE level (#2608, rep by B. Youngblood)</li>
<li>server: add port-default as a configuration item (#2798, rep by Eric Masson)</li>
<li>configure: make install needs to work even if the libexec fails (#2815, rep by stephaneeybert)</li>
<li>quercus: intval was ignoring base param (#2817, rep by stephaneeybert)</li>
</ul>
</s2>

<s2 title="3.2.0a">
<ul>
<li>build error missing final JNI updates</li>
</ul>
</s2>

<s2 title="3.2.0">
<ul>
<li>resin: renamed httpd.sh and httpd.exe to resin.sh and resin.exe respectively</li>
<li>quercus: fixed compact() for variables with NULL values</li>
<li>quercus: add replace() to UsesSymbolTable and split the array extract</li>
<li>jsse: add 'protocols' attribute (#2794, rep by Maithili Deshpande)</li>
<li>server: IllegalStateException: DESTROYED in TcpConnection (#2799, rep by Steffen Busch)</li>
<li>install: MacOS-X configure update for 64-bit Java (#2448, 2771 rep by mmetcalfe)</li>
<li>(2008-07-24) config: jpa-persistence replaces persistence-manager to avoid confusion with persistent-store</li>
<li>quercus: Pages sidebar not found in a standard Wordpress installation (#2800, rep by PeterUnold)</li>
<li>quercus: class_implements() is missing (#2788, rep by drhalogen)</li>
<li>quercus: setlocale not working properly (#2752, rep s. eybert)</li>
<li>mail: add properties attribute as &lt;init> synonym (rep by Daniel Lopez)</li>
<li>(2008-07-20) log: added mail: as a logging handler</li>
<li>messaging: added caucho.log:, caucho.jms:, caucho.mail: as bam services</li>
<li>messaging: added &lt;bam-service> as a parallel to &lt;ejb-message-bean></li>
<li>messaging: added BamClient for local bam messages</li>
<li>(2008-07-18) amber: query/cache issues around chunk-size limit (#2777, rep by Riccardo Cohen)</li>
<li>config: ${getenv['foo']} now returns environment variables (#2783, rep by Robert Heerdink)</li>
<li>jsf: JSF Developer Aid. Displays Component Tree with values and request info.</li>
<li>remote: remote-client was storing wrong object in jndi (#2780, rep by Sashidhar Guduri)</li>
<li>config: xml errors now show context (#2781)</li>
<li>quercus: sprintf locale printing (#2771, rep by fredo)</li>
<li>quercus: web.xml sample init-param is incorrect (#2776, rep by mingfai)</li>
<li>quercus: StringModule/sha1+md5 does not support raw output (#2769, rep by fredo)</li>
<li>quercus: glob() doesn't work as in mod_php (#2761, znagy_k2004)</li>
<li>quercus: session_regenerate_id() auto starts session (#2758, rep by stephaneeybert)</li>
<li>quercus: curl callback support (#2762)</li>
<li>jpa: add persistence-unit to persistence-manager (#2775, rep by Uwe Schaefer)</li>
<li>jpa: add persistence-unit-default to persistence-manager (#2775, rep by Uwe Schaefer)</li>
<li>jpa: amber should not be enabled by default (#2775, rep by Uwe Schaefer)</li>
<li>netbeans plugin now distributed in maven repository (#2716, rep by N. Phadte)</li>
<li>eclipse plugin now distributed in maven repository (#2710, rep by Vinod Mehra)</li>
<li>(2008-07-07) jsp: reduce makeAll lock in MakeContainer/CompilingLoader for multithread (#2751, rep by Sri Satish)</li>
<li>jsp: make JspPrecompileListener multithreaded (#2767, rep by stbu)</li>
<li>admin: add check for PermGen free memory (#2760, rep by Andy Qu)</li>
<li>admin: moved deadlock detection to ProManagement and enhanced logging (#2288, rep by Allen Servedio)</li>
<li>admin: added TcpConnectionInfo for connection state and added to /resin-admin</li>
<li>admin: restored logs to /resin-admin</li>
<li>admin: added basic graphs to /resin-admin</li>
<li>classloader: getResource/getResources issues with directories (#2763, rep by bregnvig)</li>
<li>amber: basic @ElementCollection implementation (#2749, rep by Martin Aschoff)</li>
<li>jsf: new JSF 'java' state serialization method introduced. Now supports methods 'hessian'-(default) and 'java'</li>
<li>jsf: AjaxAnywhere fixes(#2644, rep by vladdy)</li>
<li>quercus: missing synchronization in ModuleContext</li>
<li>jms: add jndi/remote cluster client (#2476)</li>
<li>boot: change -verbose display of CLASSPATH (#2751, rep by Martin Morawetz)</li>
<li>jms: add backup to cluster queue (#2415)</li>
<li>jms: add priority support to memory, file (#2433, rep by Malcolm)</li>
<li>log: add rollover-cron to access-log (#2744, rep by Keith Fetterman)</li>
<li>admin: add classpath to /resin-admin/config.php (#2750, rep by Martin Morawetz)</li>
<li>jpa: limit improperly calculated (#2746, rep by Riccardo Cohen)</li>
<li>jsp: content after forward should be ignored (#2748, rep by Vinod Mehra)</li>
<li>session: update synchronization for ajax applications (#2333)</li>
<li>plugin: win32 apache/iis timeout default needs to be greater than socket-timeout to avoid 503 (#2715, rep by bmeyns)</li>
<li>xml: sax issue with Tapestry (#2723, rep by wirah)</li>
<li>security: for ldap authentication, add security-authentication, security-principal and security-credentials (#2325, rep by Vinny)</li>
<li>deploy: web-app-deploy should use dependency-check-interval, not redeploy-check-interval (#2745, rep by mzgubin)</li>
<li>deploy: add command-line war deployment (#1167, rep by Serge Knystautas)</li>
<li>quercus: include. include_once don't return a Boolean value (#2742, rep by kubazygmunt)</li>
<li>database: after connection error in XA, the returned connection must still be the same object (#2708, rep by Takahiro Fukuda)</li>
<li>win32: for services, avoid java restart on admin exit (#2701, rep by phenzler)</li>
<li>jsf: fast-jsf is moved from jsp group to jsf group (&lt;jsp fast-jsf='true'&gt; becomes &lt;jsf fast-jsf='true'&gt;)</li>
<li>session: add save-backup='false' to cluster store (#2626, rep by Allen Servedio)</li>
<li>admin: add PortMX lifetime statistics (#2422, rep by Knut Forkalsrud)</li>
<li>win32: lpt detection with jni (#2738, rep by T Fukuda)</li>
<li>admin: resin-admin now allows start/stop/restart for webapps (#1882, rep by S Garrett)</li>
<li>log: add hostname-dns-lookup for apache compatibility (#2732, rep by Michael O'Dea)</li>
<li>admin: cpu-load for non-unix should not be logged (#2727, rep by Bradley Van Cleave)</li>
<li>rewrite-dispatch: add absolute-target for forward (#2681, rep by Bill Au)</li>
<li>rewrite-dispatch: add dispatcher-type for REQUEST, INCLUDE, FORWARD (#2675, rep by Vinod Mehra)</li>
<li>(2008-06-15) jsp: jsp generation changes to reduce code size (#2347)</li>
<li>log: added response.isCacheHit() for AbstractHttpResponse (#2733)</li>
<li>classloader: scan of ext paths must only add directories and jars (#2659, rep by Brian Burke)</li>
<li>classloader: windows updates to handled custom-modified class files (#2730, rep by axeon)</li>
<li>jca: localTransactionStarted callback must not call LocalTransaction.begin (#2627, rep by Wesley)</li>
<li>error: add development-mode-error-page to control error messages exposed to the user (#2714, rep by norlab)</li>
<li>jsp: better handling of jsp classloading/compiling (#2702, rep by N. Maves)</li>
<li>jsp: taglib needs to avoid Beans introspector to handle overloaded setters (#2634, rep by J. Reynaert)</li>
<li>admin: test for alarm freeze failed for win32 dst updates, and was obsolete (#2509, rep by Michael Sengbusch)</li>
<li>session: call sessionDestroy only on primary server (#2137, rep by Kai Virkki)</li>
<li>security: custom ip-constraint extension IoC configuration issues (#2718, rep by Alex Victoria)</li>
<li>quercus: "late static binding" implemented (static:: and get_called_class())</li>
<li>quercus: extending SimpleXMLElement class fix</li>
<li>quercus: self::$$var, self::$$var() fixes</li>
<li>quercus: HessianPHP fixes (#2717, rep by M. Schmidt)</li>
<li>quercus: When extending a built-in class (DOMXPath), parent constructor never gets called (#2362, rep by davidsklar)</li>
<li>quercus: $HTTP_RAW_POST_DATA and "php://input" stream not implemented (#1770, rep by marlonj)</li>
<li>quercus: Type casting fails to string fails (#2688, rep by rikus)</li>
<li>cluster: distributed session writeback in separate threads (#2368, rep by resinossi)</li>
<li>cluster: distributed objects now check hash for optimistic locking</li>
<li>servlet: allow forward from include (#2481, rep by Ilya Kasnacheev and Huitang Li)</li>
<li>vfs: windows getURL not properly converting /foo to file:/foo (#2725, rep by Vinod Mehra)</li>
<li>cache: setStatus(500) needs to kill caching</li>
<li>cache: avoid caching blank pages (#2610, rep by Shane Cruz)</li>
<li>hessian: added FooSerializerFactory to handle legacy objects with non-zero constructors (#2584, rep by Matt Johnson)</li>
<li>init: servlet init must have access to port mbean (#2683, rep by Vinod Mehra)</li>
<li>ioc: synchronization on bean introspection (#2672, rep by Matthew Schmidt)</li>
<li>ssl: synchronization issues with openssl init (#2712, rep by janecek)</li>
<li>cache: InterruptedIOException needs to be treated like ClientDisconnectException and not stop cache (#2704, rep by Dmitry Zaburyanov)</li>
<li>dynamicserver: add dynamic server support (#2314)</li>
<li>boot: add watchdog-log/rollover-period (#2656, rep by Oscar Sumano)</li>
<li>boot: log directory set by -log-directory and &lt;watchdog-log> (#2685, rep by Jose Quinteiro)</li>
<li>boot: log and admin need to relative to resin.root (#2682, rep by Maurice Volaski)</li>
<li>security: authenticator stored in webapp as caucho.authenticator (#2686, rep by Anthony Blandran)</li>
<li>database: driver-type needs to be an allowed database parameter (#2700, rep by altaman)</li>
<li>quercus: readlink/realpath fixes for symlinks (#2175, rep by jumakill)</li>
<li>quercus: grandparent super constructor callable by parent::B() (#2489)</li>
<li>quercus: oci_fetch_all wasn't checking fetchArray return value properly (#1472, rep by osmedd)</li>
<li>quercus: Foo:${${a}} support (#2666, rep by falko)</li>
<li>quercus: spl_autoload fixes (#2367, rep by Torsten)</li>
<li>quercus: ArrayListAdapter must not copy list (#2657, rep by skleinjung)</li>
<li>quercus: describe issues with mysql_fetch_field_direct (#2541, rep by jarmstrong)</li>
<li>quercus: mysql longvarchar issues in JdbcResultResource (#2606, rep by sgraf)</li>
<li>quercus: setEscapeProcessing(false) for prepared statement not allowed by oracle (#2267, rep by sergpro)</li>
<li>quercus: oci_new_connect was not working with a charset parameter (#2406, rep by ckchris)</li>
<li>quercus: php://input for drupal (#2679, rep by M. Schmidt)</li>
<li>quercus: allow_url_include and allow_url_fopen (#2690, rep by rhino4321)</li>
<li>quercus: broken mysql_pconnect (#2671, rep by dberry)</li>
<li>(2008-05-28) quercus: support for Java enum arguments (#2493)</li>
<li>quercus: xml_parse with BOM (#2680)</li>
<li>quercus: SERVER_ADDR and PHP_AUTH_USER (#2699, rep by perololo)</li>
<li>quercus: apc_cache_info (#2696, rep by koreth)</li>
<li>quercus: apc size configurable with apc.user_cache_hint (#2698, rep by koreth)</li>
<li>quercus: unserialize cache key needs to be a softreference</li>
<li>quercus: add ttf image handling (#1398, #2197, rep by dberry, koreth, perololo)</li>
<li>quercus: support class definition in eval (#2547, rep by dobes_vendermeer)</li>
<li>quercus: xml_parser_get_option type not correct for XML_OPTION_CASE_FOLDING (#1503, rep by at4u)</li>
<li>quercus: NPE in StaticMethodExpr (#2678, rep by Matthew Schmidt)</li>
<li>quercus: imagestringup (#2673, rep by rwankar)</li>
<li>hessian: HessianOutput.flush() needs os.flush (rep by Dinesh Bolkensteyn)</li>
<li>quercus: XMLWriter module (#2218, rep by koreth)</li>
<li>quercus: hash module (#2122, rep by koreth)</li>
<li>boot: init.resin.in script updates for debian (#2647, rep by wirah)</li>
<li>classloader: add log when .jar is not readable (#2669, rep by chris_se)</li>
<li>webapp: versioning wasn't handling ROOT-1.0.war properly (#2668, rep by A Servidio)</li>
<li>windows: invocation decoding fixes</li>
<li>(2008-05-17) quercus: cast with ResourceValue was sending fatal error instead of warning</li>
<li>quercus: tempnam was not allowing short prefix for Seagull (#2663, rep by falko)</li>
<li>quercus: cache include miss (#2196, rep by koreth)</li>
<li>quercus: timestamp handling of 0000-00-00 with mysql driver (#2609, rep by sgraf)</li>
<li>load balance: update load-balance-idle-time heuristic to increase gap to keepalive (#2660)</li>
<li>mod_caucho: build issue with Apache 1.3 (#2655, rep by maxpil)</li>
<li>quercus: new self needs to create the owning class (#2550, rep by mardala)</li>
<li>quercus: top-level var not properly analyzed (#2303, rep by Dan)</li>
<li>quercus: unset of global variables (#2259, rep by koreth)</li>
<li>quercus: parser needs to use _peek instead of is.unread() for backtrack (#2432, rep by dkyriakis)</li>
<li>quercus: fileperms on non-jni needs umask 002 (#2620, rep by B Youngblood)</li>
<li>quercus: improved error message when javamail.jar missing (#2616, rep by B Youngblood)</li>
<li>quercus: ctype fixes (#2436, rep by artenberg)</li>
<li>proxy: ProxyServlet support for virtual hosts (#2639, rep by remilon)</li>
<li>proxy: ProxyServlet support for x-forwarded-for (#2638, rep by remilon)</li>
<li>proxy: ProxyServlet was not properly passing repeated headers (#2637, rep by remilon)</li>
<li>admin: ping thread failure should only send page results at fine level (#2640, rep by remilon)</li>
<li>quercus: mantis issue with compress_handler missing (ob_start callback) (#2575, rep by stargazer)</li>
<li>quercus: spl_autoload_register needs callback argument (#2590, #2192, rep by mikebevz)</li>
<li>webbeans: amber loading timing issue with webbeans (#2642, rep by markus)</li>
<li>quercus: missing synchronization on getJavaClassDefinition (#2632, rep by stbu)</li>
<li>servlet: RequestWrapper needs to use getRequest() instead of _request (#2651, rep by azenkov)</li>
<li>boot: resin-root not properly handled (#2652, rep by Alex Sharaz)</li>
<li>amber: EntityManagerFactory init must be lazy for 3rd party providers (#2648, rep by wesley)</li>
</ul>
</s2>

<p>
<a href="changes-31.xtp">Resin 3.1 changes</a>
<a href="changes-2.xtp">Resin 1.2 changes</a>
<a href="changes-1.xtp">older changes</a>
</p>
</s1>
</body>
</document>
