On Tue, 2013-02-05 at 12:39, Dennis Reedy wrote:
> This also happens with updates to Java 1.6 (u39). The fix looks to be simple. 
> The Levels class seems to be the issue. Unless I'm missing something, it 
> seems straight forward enough the create a custom level without using the 
> ClassReplacingObjectOutputStream and the LevelData approach. I modified 
> Levels (attached on my reply), rebuilt and everything seems to load 
> successfully. Without this fix I have a complete show stopper for some of my 
> installations.
> 
> I'd like to request that this gets fixed ASAP and a new release produced.
> 

Any committers on the list?  Oh wait, aren't you one, Dennis :-)

Actually, could you open a Jira ticket for this and attach your patch? 
I suspect that since it's a core library, we might be best to "Review
then commit" on this one.  I agree that a quick release is in order. 
Perhaps we should branch from the last stable release and patch/release
that?  Opinions anyone?

Cheers,

Greg,

> Thanks
> 
> Dennis
> 
> 
> /*
>  * Licensed to the Apache Software Foundation (ASF) under one
>  * or more contributor license agreements.  See the NOTICE file
>  * distributed with this work for additional information
>  * regarding copyright ownership. The ASF licenses this file
>  * to you under the Apache License, Version 2.0 (the
>  * "License"); you may not use this file except in compliance
>  * with the License. You may obtain a copy of the License at
>  * 
>  *      http://www.apache.org/licenses/LICENSE-2.0
>  * 
>  * Unless required by applicable law or agreed to in writing, software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  * See the License for the specific language governing permissions and
>  * limitations under the License.
>  */
> 
> package com.sun.jini.logging;
> 
> import java.io.ByteArrayInputStream;
> import java.io.ByteArrayOutputStream;
> import java.io.IOException;
> import java.io.ObjectInputStream;
> import java.io.ObjectOutputStream;
> import java.io.ObjectStreamClass;
> import java.io.OutputStream;
> import java.io.Serializable;
> import java.lang.String;
> import java.util.logging.Level;
> 
> /**
>  * Defines additional {@link Level} values. <p>
>  * <p/>
>  * See the {@link LogManager} class for one way to use the <code>FAILED</code>
>  * and <code>HANDLED</code> logging levels in standard logging configuration
>  * files.
>  *
>  * @author Sun Microsystems, Inc.
>  * @since 2.0
>  */
> public class Levels {
> 
>     /**
>      * <code>FAILED</code> is a message level indicating that a facility has
>      * experienced a failure that it will reflect to its caller. <p>
>      * <p/>
>      * <code>FAILED</code> messages are intended to provide users with
>      * information about failures produced by internal components in order to
>      * assist with debugging problems in systems with multiple components. 
> This
>      * level is initialized to <code>600</code>.
>      */
>     public static final Level FAILED = createLevel("FAILED", 600, null);
> 
>     /**
>      * <code>HANDLED</code> is a message level indicating that a facility has
>      * detected a failure that it will take steps to handle without reflecting
>      * the failure to its caller. <p>
>      * <p/>
>      * <code>HANDLED</code> messages are intended to provide users with
>      * information about failures detected by internal components in order to
>      * assist with debugging problems in systems with multiple components. 
> This
>      * level is initialized to <code>550</code>.
>      */
>     public static final Level HANDLED = createLevel("HANDLED", 550, null);
> 
>     /**
>      * This class cannot be instantiated.
>      */
>     private Levels() {
>         throw new AssertionError("This class cannot be instantiated");
>     }
> 
> 
>     /**
>      * Creates an instance of the Level class.  This method works around the
>      * fact that there is no public constructor for the Level class by
>      * constructing the serialized form for an instance with the specified
>      * field values and deserializing it.
>      */
>     private static Level createLevel(String name,
>                                      int value,
>                                      String resourceBundleName) {
>         return new CustomLevel(name, value, resourceBundleName);
>     }
> 
>     static class CustomLevel extends Level {
>         CustomLevel(String name, int value, String resourceBundleName) {
>             super(name, value, resourceBundleName);
>         }
>     }
> }
> 

Reply via email to