Announcing Lucee 5.3.4.77 (final)

Happy New Year Lucites! (Hey, what’s the over/under bet on how late is too late in the year to say Happy New Year? I think I just won the over!) Here’s hoping 2020 sees much success for you, in particular with regard to your Lucee endeavors.

Regarding that last bit, today we’re announcing a final release of Lucee 5.3.4 (5.3.4.77). As I explained in December, we decided to extend this version to a second release candidate phase. And, while there were no regressions in 5.3.4.73 per se, we did struggle, during the combined RC2 and January-December sprint, with a collection of challenging bugs related to low-level problems like classloading. Thus, in order to make 5.3.4 as helpful to as large a user base as possible, we made the decision to include a patch in 5.3.4.77 that eliminates those problems for nearly everyone. This is, of course, in addition to the large batch of tickets addressed in 5.3.4 overall.

Here’s the list of tickets covered by 5.3.4.77:

|Ticket - Summary|
|—|—|
|LDEV-2677 add flexibility how template classes get updated
|LDEV-2608 Regression in struct implementation causing stack overflow
|LDEV-2601 javasettings fails with invalid OSGi Bundles
|LDEV-2593 two problem upgrading from Lucee 5.3.2.77 to Lucee version 5.3.3.62
|LDEV-2565 csrfGenerateToken() and csrfVerifyToken() with no arguments throw a null pointer exception.
|LDEV-2536 Regression w/CFML Sessions: Session scope does not support CSRF Tokens
|LDEV-2527 Concurrency: reflection metho d lookups using single sychronous map holding locks under concurrent load
|LDEV-2517 unsupported third party extensions warning shown for lucee extensions when offline
|LDEV-2513 Regression: can no longer add extension provider in admin
|LDEV-2508 unable to use ‘services:update’ UI to downgrade from 5.3.3.62 to 5.3.2.77, at least when 5.3.2.77 was the original installation
|LDEV-2503 Missing image file breaks admin-extensions-applications page
|LDEV-2488 java.util.ConcurrentModificationException in StructClear()
|LDEV-2479 lucee.runtime.exp.NativeException: java.lang.StackOverflowError
|LDEV-2474 CFLocation in 5.3.3.62 Filling Up Error Logs
|LDEV-2465 change log level of some scheduler log to debug
|LDEV-2464 datasource log4j appender “insert” no columnlist
|LDEV-2460 Initial Password Setup Not Working
|LDEV-2437 log spam “com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl is used as DocumentBuilderFactory”
|LDEV-2433 Admin blows up when an extension has an invalid icon image and makes ALL extensions unusable
|LDEV-2429 Schedule task - Valid task becomes invalid
|LDEV-2405 Flying Saucer PDF extension leaks debugging lines out to the console
|LDEV-2401 LSParseNumber thread unsafe?
|LDEV-2385 make all uses of ReferenceMap thread safe
|LDEV-2349 FileCopy- Destination file losses the original access mode
|LDEV-2328 Regression: Can’t resize image proportionally in ImageResize
|LDEV-2320 Zipping empty folder errors (Regression)
|LDEV-2317 REGRESSION - java.lang.NoClassDefFoundError - Solr 8
|LDEV-2310 Valid base64 string doesn’t convert into image
|LDEV-2307 Downgrade version(base) doesn’t exist after upgrade into latest version
|LDEV-2304 SerializeJSON not preserving case on query
|LDEV-2301 server update crashes when lucee can’t connect to internet or lucee webservices down
|LDEV-2290 application log has WARN entries when LOG level set to ERROR
|LDEV-2274 undefined tooltips for metrics graphs
|LDEV-2273 Replace by struct multiplies when value contains key
|LDEV-2270 sameFormFieldsAsArray converts all fields to arrays
|LDEV-2212 <cfapplication pdf=“#{type:“classic”}#”> throws an error
|LDEV-2163 Lucee cacerts file is old
|LDEV-2150 cfthread object empty inside of a thread
|LDEV-2128 Query of Queries UNION returns incorrect results with cfqueryparam
|LDEV-2116 executable bit is lost on files when using directoryCopy() on binaries
|LDEV-2113 xmlValidate Cannot find the declaration of element
|LDEV-2108 SerializeJSON argument error even when supplied argument is a boolean
|LDEV-2097 CFQuery Lazy=“true”, i.e. SimpleQuery is able to consume infinite heap memory during request
|LDEV-2096 ArrayNew is not default synchronized=true and missing typed arrays documentation
|LDEV-2091 CFThread after join logs implicit error that is not fixable
|LDEV-2085 add possibility to define a directory containing OSGi bundles with this.javaSettings
|LDEV-2035 Event Gateway - Add a Gateway Type to Handle Asynchronous events through CFCs
|LDEV-1939 Nested cftry in cfcatch duplicates error logs
|LDEV-1933 CFMAIL can’t connect to TLSv1.2 smtp server
|LDEV-1850 PDF: cfpdf - remove password from pdf-file

Ticket 2677 summarizes the classloading/re-loading problem I mentioned, so if you were affected by that, you can review the comments in that ticket regarding the collection of interrelated tickets/problems that are involved.

Next up for the dev team is to close the December-January sprint, which will produce 5.3.5-RC. We’re aiming to do that later this week. Then, we’ll be posting again later in February about the 2020 development schedule, which, as I’ve hinted at in the past, will entail shorter, more targeted sprints, that will allow us to iterate over releases more quickly, and with fewer problems. More on that soon, and thanks as always for listening!

11 Likes

Yes ! You’ve fixed createObject(‘java’,…) !

We can start looking at moving off older releases now !

2 Likes

The new release has been added to ForgeBox for CommandBox servers to use.

server start cfengine=lucee@5.3.4
4 Likes

Thanks a lot for all the hard work! Looking forward to doing the upgrade :star_struck:

1 Like

Keep Lucee going!

1 Like

Any date for the (windows) installer?

Hi @janderegg. They’re being built right now, so they should be up later today, or possibly by tomorrow. Stay tuned.

great, it’s there - thanks!

The current 5.3.4.77 stable release seems to have been updated to 5.3.4.80, with this log-filler bug being the main target:

https://luceeserver.atlassian.net/browse/LDEV-2685

It’s work noting that many people are having troubles with 5.3.4.77 and Java 1.8.0 u242

Basically, I’d be avoiding using that java version unless you want to waste time battling bugs and strange problems with Lucee, H/T @bdw429s

some more info here [LDEV-2717] - Lucee

Hey @Zackster. Yes, this was discussed in our weekly standup yesterday. I think it’s actually fixed in the .80 hotfix release (more on that here in the forum in a bit). Pothys has it marked as tested and awaiting approval, so keep an eye on the ticket.

Re: LDEV-2304, the new key case behavior does not match ACF. I had to revert back to 5.3.3.67 because a bunch of my applications broke with .77. The “Key case” option under Settings - Language/Compiler doesn’t appear to enforce upper case key names when using serializeJSON on results of an SQL query. This is important for consuming the JSON using case-sensitive Javascript.

Hi @hemi345,

according to SerializeJSON this default behaviour has changed since CF11. Did you try setting enabling case preservation of struct keys at the application level? To do it modify the application.cfc file by setting:

<cfset this.serialization.preservecaseforstructkey = false />

UPDATE:
Yeah… seems to be a bug, at least there is a strange behaviour when setting the following values:

if settings in server-admin/web-admin are:
Key case: Convert to upper case (CFML Default)

and there are no settings at application level (application.cfc), query result structs are lower case, other structs are upper case.

But if application.cfc has the setting:
this.serialization.preservecaseforstructkey = false
query structs and structs are all set as upper case.

however… setting application.cfc:
this.serialization.preservecaseforstructkey = true
has the same behaviour: all structs in upper case

Setting <cfprocessingdirective preserveCase="false"> behaves the exact same way as the admin-server/admin-web settings do (query results lower case, other structs upper case)

UPDATE 2:
I have to correct myself… From https://helpx.adobe.com/coldfusion/cfml-reference/application-cfc-reference/application-variables.html there is a different setting for enabling/disabling case preservation of query columns. For case preservation of query columns use the following in your application.cfc:
this.serialization.preserveCaseForQueryColumn = false;

Hi andreas, yeah, I noticed later the this.serialization.preserveCaseForQueryColumn = false; in the comments on LDEV-2304 and added that to my application.cfc and that took care of the issue. I understand now that Lucee’s implementation of Key Case admin setting only specifically converts user-defined structs but doesn’t affect structs created from query results. This conflicts with how ACF handles it: TryCF.com
illustrates how the behavior with Lucee .77 isn’t consistent.

1 Like

Anyone having troubles with this release, please try the 5.3.4.85-SNAPSHOT which has a number of very important fixes, I’m guessing it’s very likely to become a RC or Release quite soon.

You’re going to be way better off testing against that version than 5.3.4.77, which has some nasty problems.

The latest 5.3.6.20 SNAPSHOT is also quite stable and includes lots of additional improvements.

5.3.4.85-SNAPSHOT which has a number of very important fixes, I’m guessing it’s very likely to become a RC or Release quite soon.

@Zackster Actually, I asked internally this week about whether there would be another 5.3.4 release and was told no. It seems all efforts will be put into the soon-to-come 5.3.5 release. So unfortunately, it seems 5.3.4 will be left with some nasty regressions on it. Two of the biggest I’m aware of

  • Super slow compilation - fixed in the latest 5.3.4 snapshot
  • ORM classloading errors - ONLY fixed in 5.3.5 and 5.3.6, not in 5.3.4

This will basically make 5.3.4 unusable for anyone using ORM from what I can see. Personally, I would recommend LAS meges the ORM bug into 5.3.4 and doe one final release just so it’s not left hanging in such a state. (But no one listens to me :slight_smile: )

cc/ @IamSigmund

Have you considered pausing or slowing the release train at all, considering lots of people may be getting or already are ill ?

Which specific bug is this? We’ve been running quite a few ORM apps on 5.3.4.85-SNAPSHOT in production for several days now and it’s been very stable.

that’s just not good enough, constantly shipping broken releases as stable is bullshit

image

why? nobody is forcing anyone to update?