[jboss-cvs] javassist/src/main/javassist ...

Shigeru Chiba chiba at is.titech.ac.jp
Sun Aug 6 11:09:45 EDT 2006


  User: chiba   
  Date: 06/08/06 11:09:45

  Modified:    src/main/javassist  CtClassType.java
  Log:
  fixed JIRA JASSIST-25
  
  Revision  Changes    Path
  1.53      +9 -3      javassist/src/main/javassist/CtClassType.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: CtClassType.java
  ===================================================================
  RCS file: /cvsroot/jboss/javassist/src/main/javassist/CtClassType.java,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -b -r1.52 -r1.53
  --- CtClassType.java	18 Jul 2006 15:33:13 -0000	1.52
  +++ CtClassType.java	6 Aug 2006 15:09:45 -0000	1.53
  @@ -404,12 +404,18 @@
       }
   
       public void setModifiers(int mod) {
  -        if (Modifier.isStatic(mod))
  -            throw new RuntimeException("cannot set to static");
  +        ClassFile cf = getClassFile2();
  +        if (Modifier.isStatic(mod)) {
  +            int flags = cf.getInnerAccessFlags();
  +            if (flags != -1 && (flags & AccessFlag.STATIC) != 0)
  +                mod = mod & ~Modifier.STATIC;
  +            else
  +                throw new RuntimeException("cannot change " + getName() + " into a static class");
  +        }
   
           checkModify();
           int acc = AccessFlag.of(mod) | AccessFlag.SUPER;
  -        getClassFile2().setAccessFlags(acc);
  +        cf.setAccessFlags(acc);
       }
   
       public Object[] getAnnotations() throws ClassNotFoundException {
  
  
  



More information about the jboss-cvs-commits mailing list