Curt Arnold wrote:
On Jun 5, 2008, at 7:19 PM, Jess Holle wrote:
For my own usage I went ahead and completed the a set of changes to reduce log4j 1.2.x's locking and deadlock potential. The results are attached and make unabashed use of Java 5 -- as from discussion to this point it seems clear that there is no interest in making any of these sorts of changes in log4j 1.2.x yet I felt the need for such improvements now and only care about Java 5 and later environments.
Thanks for your contribution.

Would you consider signing a Individual Contributor License Agreement (http://www.apache.org/licenses/#clas)? While the Apache license has clauses that cover material sent to mailing lists, it is preferred to have an ICLA on file, particularly for substantial contributions.

I'll have to look into that -- I've contributed code via various Apache
mailing lists and bug reports and have never been asked this.

My take is that the contribution breaks compatibility with JDK 1.3 and 1.4

As a whole, yes, it does.  The submission could be made Java 1.3/1.4
compatible if there was interest, but I didn't see interest in changes
of this magnitude in 1.2.x.

and the removal of the synchronization lock on Category could potentially cause an existing appender to fail that depended on that lock, though I haven't tried to formulate a failure scenario.

I thought on this and could not find a failure scenario, whereas the
Category method in question shows up as a bottleneck without any changes.

This late in the log4j 1.2.x lifecycle, I'm extremely cautious about changes that have potential side effects. So I'd -1 applying these to the trunk at least prior to log4j 1.2.16 and after that only on much more extensive review that I've been able to give it to this point.

That's fine and good -- which is why I went ahead and used Java 5
features wherever appropriate.

I would not have a problem creating a branch in the sandbox for these modifications. I don't think it is the path to a log4j 2.0, but could be convinced otherwise. It is at least some movement which is a good thing.

I am trying to understand what 2.0 should be and what the path is.  The
concurrent sandbox had some good ideas, but I had issues with the
breadth/number of dependencies there.

One question I have not asked in this vein is whether there is any
desire to maintain an "almost certainly 1.2.x compatible" set of base
classes (e.g. perhaps as a separate log4j12-compat.jar module) in 2.0.
That's essentially what my patch is attempting with AppenderSkeleton and
PatternLayout.  Most any substantive change can potentially break
compatibility, but I think these should be rather safe.

By the way, I've not had a chance to benchmark my changes yet...

@author tags are pretty common in the log4j code base, however they are currently discouraged in ASF code as they are seen to contribute to a territorialism that some code belongs to that particular individual and no one else should touch it. We haven't gone threw and removed the existing author tags, but should avoid adding any new ones.

Okay -- my IDE threw those in initially and I didn't know to bother to
remove them.

--
Jess Holle


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to