I had forgotten the class was package-scoped. Carry on :-)

Matt
On Jan 30, 2014 6:41 PM, "Gary Gregory" <garydgreg...@gmail.com> wrote:

> On Thu, Jan 30, 2014 at 6:44 PM, Matt Benson <gudnabr...@gmail.com> wrote:
>
>> This change breaks binary compatibility.
>>
>
> I think this is OK because the class is package private. Strictly speaking
> it does break BC if a user's class is also in org/apache/commons/
> lang3/reflect/ which I claim is asking for trouble. Why else would our
> class be package private?
>
> Gary
>
>
>
>>
>>
>> On Thu, Jan 30, 2014 at 5:28 PM, <ggreg...@apache.org> wrote:
>>
>> > Author: ggregory
>> > Date: Thu Jan 30 23:28:26 2014
>> > New Revision: 1563014
>> >
>> > URL: http://svn.apache.org/r1563014
>> > Log:
>> > [LANG-961]
>> > org.apache.commons.lang3.reflect.FieldUtils.removeFinalModifier(Field)
>> does
>> > not clean up after itself. Only call setAccessible if neccessary and
>> tell
>> > the caller about it so it can undo the change if need be.
>> >
>> > Modified:
>> >
>> >
>> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java
>> >
>> > Modified:
>> >
>> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java
>> > URL:
>> >
>> http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java?rev=1563014&r1=1563013&r2=1563014&view=diff
>> >
>> >
>> ==============================================================================
>> > ---
>> >
>> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java
>> > (original)
>> > +++
>> >
>> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java
>> > Thu Jan 30 23:28:26 2014
>> > @@ -49,20 +49,22 @@ abstract class MemberUtils {
>> >       * sufficiently privileged code. Better workarounds would be
>> > gratefully
>> >       * accepted.
>> >       * @param o the AccessibleObject to set as accessible
>> > +     * @return a boolean indicating whether the accessibility of the
>> > object was set to true.
>> >       */
>> > -    static void setAccessibleWorkaround(final AccessibleObject o) {
>> > +    static boolean setAccessibleWorkaround(final AccessibleObject o) {
>> >          if (o == null || o.isAccessible()) {
>> > -            return;
>> > +            return false;
>> >          }
>> >          final Member m = (Member) o;
>> > -        if (Modifier.isPublic(m.getModifiers())
>> > -                &&
>> isPackageAccess(m.getDeclaringClass().getModifiers()))
>> > {
>> > +        if (!o.isAccessible() && Modifier.isPublic(m.getModifiers()) &&
>> > isPackageAccess(m.getDeclaringClass().getModifiers())) {
>> >              try {
>> >                  o.setAccessible(true);
>> > +                return true;
>> >              } catch (final SecurityException e) { // NOPMD
>> >                  // ignore in favor of subsequent IllegalAccessException
>> >              }
>> >          }
>> > +        return false;
>> >      }
>> >
>> >      /**
>> >
>> >
>> >
>>
>
>
>
> --
> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> Java Persistence with Hibernate, Second 
> Edition<http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory
>

Reply via email to