Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8132697

ArrayIndexOutOfBoundsException at com.sun.tools.javac.jvm.ClassReader$8.read(

XMLWordPrintable

    • x86_64
    • windows_7

      FULL PRODUCT VERSION :
      java version "1.8.0_45"
      Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
      Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Windows 7 64 Bit

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      Using Java 8 + Maven


      A DESCRIPTION OF THE PROBLEM :
      Can't compile/package anything with maven due to an ArrayIndexOutOfBoundsException being thrown at compile time.

      REGRESSION. Last worked in version 8u45

      ADDITIONAL REGRESSION INFORMATION:
      java version "1.8.0_45"
      Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
      Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Create a Maven project, and package it.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      A packaged jar file.
      ACTUAL -
      Stacktrace as seen: http://pastebin.com/jUTFD0Uw

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      [INFO] 1 error
      [INFO] -------------------------------------------------------------
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD FAILURE
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 0.805 s
      [INFO] Finished at: 2015-05-23T23:03:16-06:00
      [INFO] Final Memory: 15M/491M
      [INFO] ------------------------------------------------------------------------
      [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.
      3.2:compile (default-compile) on project FactionsBoard: Compilation failure
      [ERROR] Failure executing javac, but could not parse the error:
      [ERROR] An exception has occurred in the compiler (1.8.0_45). Please file a bug
      at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after
      checking the Bug Parade for duplicates. Include your program and the following d
      iagnostic in your report. Thank you.
      [ERROR] java.lang.ArrayIndexOutOfBoundsException: 1035
      [ERROR] at com.sun.tools.javac.jvm.ClassReader$8.read(ClassReader.java:1072)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.readAttrs(ClassReader.java:1381)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.readMemberAttrs(ClassReader.java:
      1371)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.readCode(ClassReader.java:1408)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader$3.read(ClassReader.java:1006)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.readAttrs(ClassReader.java:1381)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.readMemberAttrs(ClassReader.java:
      1371)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.readMethod(ClassReader.java:2042)
       
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:2250)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:23
      22)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:2509)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:2440)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.access$000(ClassReader.java:76)
      [ERROR] at com.sun.tools.javac.jvm.ClassReader$1.complete(ClassReader.java:240)
      [ERROR] at com.sun.tools.javac.code.Symbol.complete(Symbol.java:574)
      [ERROR] at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1037
      )
      [ERROR] at com.sun.tools.javac.jvm.ClassReader.loadClass(ClassReader.java:2621)
      [ERROR] at com.sun.tools.javac.comp.Resolve.loadClass(Resolve.java:1896)
      [ERROR] at com.sun.tools.javac.comp.Resolve.findIdentInPackage(Resolve.java:2135
      )
      [ERROR] at com.sun.tools.javac.comp.Attr.selectSym(Attr.java:3359)
      [ERROR] at com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3246)
      [ERROR] at com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:1897
      )
      [ERROR] at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:566)
      [ERROR] at com.sun.tools.javac.comp.Attr.attribType(Attr.java:628)
      [ERROR] at com.sun.tools.javac.comp.Attr.attribType(Attr.java:621)
      [ERROR] at com.sun.tools.javac.comp.MemberEnter.attribImportType(MemberEnter.jav
      a:834)
      [ERROR] at com.sun.tools.javac.comp.MemberEnter.visitImport(MemberEnter.java:558
      )
      [ERROR] at com.sun.tools.javac.tree.JCTree$JCImport.accept(JCTree.java:571)
      [ERROR] at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:437
      )
      [ERROR] at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:449
      )
      [ERROR] at com.sun.tools.javac.comp.MemberEnter.visitTopLevel(MemberEnter.java:5
      28)
      [ERROR] at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:
      518)
      [ERROR] at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:437
      )
      [ERROR] at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:1038)
      [ERROR] at com.sun.tools.javac.code.Symbol.complete(Symbol.java:574)
      [ERROR] at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1037
      )
      [ERROR] at com.sun.tools.javac.comp.Enter.complete(Enter.java:493)
      [ERROR] at com.sun.tools.javac.comp.Enter.main(Enter.java:471)
      [ERROR] at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:98
      2)
      [ERROR] at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:857)
      [ERROR] at com.sun.tools.javac.main.Main.compile(Main.java:523)
      [ERROR] at com.sun.tools.javac.main.Main.compile(Main.java:381)
      [ERROR] at com.sun.tools.javac.main.Main.compile(Main.java:370)
      [ERROR] at com.sun.tools.javac.main.Main.compile(Main.java:361)
      [ERROR] at com.sun.tools.javac.Main.compile(Main.java:74)
      [ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
      java:62)
      [ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
      sorImpl.java:43)
      [ERROR] at java.lang.reflect.Method.invoke(Method.java:497)
      [ERROR] at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(Jav
      acCompiler.java:554)
      [ERROR] at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompile
      r.java:161)
      [ERROR] at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompiler
      Mojo.java:605)
      [ERROR] at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
      [ERROR] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Default
      BuildPluginManager.java:133)
      [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
      .java:208)
      [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
      .java:153)
      [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
      .java:145)
      [ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje
      ct(LifecycleModuleBuilder.java:108)
      [ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje
      ct(LifecycleModuleBuilder.java:76)
      [ERROR] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThre
      adedBuilder.build(SingleThreadedBuilder.java:51)
      [ERROR] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycl
      eStarter.java:116)
      [ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
      [ERROR] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
      [ERROR] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
      [ERROR] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
      [ERROR] at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
      [ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
      java:62)
      [ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
      sorImpl.java:43)
      [ERROR] at java.lang.reflect.Method.invoke(Method.java:497)
      [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun
      cher.java:289)
      [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav
      a:229)
      [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La
      uncher.java:415)
      [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
      356)
      [ERROR] -> [Help 1]
      [ERROR]
      [ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
      ch.
      [ERROR] Re-run Maven using the -X switch to enable full debug logging.
      [ERROR]
      [ERROR] For more information about the errors and possible solutions, please rea
      d the following articles:
      [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc
      eption

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import com.massivecraft.factions.FPlayer;
      import com.massivecraft.factions.FPlayers;
      import com.massivecraft.factions.Faction;
      import com.massivecraft.factions.event.FactionCreateEvent;
      import com.massivecraft.factions.event.FactionDisbandEvent;
      import com.massivecraft.factions.event.PowerLossEvent;
      import com.massivecraft.factions.struct.Role;
      import io.ibj.Core.Core;
      import io.ibj.Core.player.gameManagers.ScoreboardManager;
      import org.bukkit.Bukkit;
      import org.bukkit.ChatColor;
      import org.bukkit.entity.Player;
      import org.bukkit.event.EventHandler;
      import org.bukkit.event.Listener;
      import org.bukkit.event.player.PlayerJoinEvent;
      import org.bukkit.event.player.PlayerKickEvent;
      import org.bukkit.event.player.PlayerQuitEvent;
      import org.bukkit.plugin.java.JavaPlugin;
      import org.bukkit.scheduler.BukkitRunnable;

      import java.util.*;

      public class FactionsBoard extends JavaPlugin implements Listener{

          private static String FACTION_TITLE;
          private static String FACTIONLESS_TITLE;
          private static String PLAYER_FORMAT;
          private static String POWER_FORMAT;

          public void onEnable(){
              saveDefaultConfig();
              getServer().getPluginManager().registerEvents(this,this);

              FACTION_TITLE = get("faction_title");
              FACTIONLESS_TITLE = get("factionless_title");

              PLAYER_FORMAT = get("player_format");
              POWER_FORMAT = get("power_format");

              new BukkitRunnable(){
                  public void run(){
                      for(Player p : Bukkit.getOnlinePlayers()){
                          updateScore(p);
                      }
                  }
              }.runTaskTimer(this, 1, 4800);


          }

          @EventHandler
          public void onPower(PowerLossEvent e){
              for(Player p : e.getFaction().getOnlinePlayers()){
                  updateScore(p);
              }
          }

          @EventHandler
          public void onDisband(FactionDisbandEvent e){
              for(Player p : e.getFaction().getOnlinePlayers()){
                  updateScore(p);
              }
          }

          @EventHandler
          public void onCreate(FactionCreateEvent e){
              updateScore(e.getFPlayer().getPlayer());
          }

          @EventHandler
          public void onJoin(PlayerJoinEvent e){
              for(Player p : FPlayers.getInstance().getByPlayer(e.getPlayer()).getFaction().getOnlinePlayers()){
                  updateScore(p);
              }
          }

          @EventHandler
          public void onLeave(PlayerQuitEvent e){
              for(Player p : FPlayers.getInstance().getByPlayer(e.getPlayer()).getFaction().getOnlinePlayers()){
                  updateScore(p);
              }
          }

          @EventHandler
          public void onKick(PlayerKickEvent e){
              for(Player p : FPlayers.getInstance().getByPlayer(e.getPlayer()).getFaction().getOnlinePlayers()){
                  updateScore(p);
              }
          }

          public void updateScore(Player update){
              for(Player fac : FPlayers.getInstance().getByPlayer(update).getFaction().getOnlinePlayers()){
                  ScoreboardManager manager = Core.getI().getPlayerManager().getPlayer(fac).getScoreboardManager();;
                  FPlayer fp = FPlayers.getInstance().getByPlayer(fac);
                  if(fp.getFaction() != null && !ChatColor.stripColor(fp.getFaction().getId()).equalsIgnoreCase("Wilderness")){
                      manager.setTitle(FACTION_TITLE.replace("<faction>", fp.getFaction().getTag()));
                      ArrayList<String> set = indexFaction(fp.getFaction());
                      manager.setToSize(set.size());
                      for(int i = 0; i < set.size(); i++){
                          if(i % 2 == 0)manager.setLine(i, PLAYER_FORMAT.replace("<player>", set.get(i))); //Player name format I know. I'm a genius.
                          else manager.setLine(i,POWER_FORMAT.replace("<power>", set.get(i))); //Power amt format
                      }
                  }else{
                      manager.setToSize(1);
                      manager.setTitle(FACTIONLESS_TITLE.replace("<faction>",fp.getTag()));
                  }
              }
          }

          public String get(String path){
              return ChatColor.translateAlternateColorCodes('&',getConfig().getString(path));
          }

          @SuppressWarnings("unchecked")
          public ArrayList<String> indexFaction(Faction fac){
              HashMap<String, Integer> powers = new HashMap<String, Integer>();
              HashMap<String, Integer> modpowers = new HashMap<String, Integer>();
              if(fac == null || fac.getFPlayerAdmin() == null){
                  return new ArrayList<String>();
              }
              for(Player p : fac.getOnlinePlayers()){
                  if(FPlayers.getInstance().getByPlayer(p).getRole() == Role.MODERATOR){
                      modpowers.put("*" + p.getName(), FPlayers.getInstance().getByPlayer(p).getPowerRounded());
                  }
                  else if(FPlayers.getInstance().getByPlayer(p).getRole() == Role.NORMAL){
                      powers.put(p.getName(), FPlayers.getInstance().getByPlayer(p).getPowerRounded());
                  }
              }
              Object[] a = powers.entrySet().toArray();
              Arrays.sort(a, new Comparator() {
                  public int compare(Object o1, Object o2) {
                      return ((Map.Entry<String, Integer>) o2).getValue().compareTo(
                              ((Map.Entry<String, Integer>) o1).getValue());
                  }
              });
              ArrayList<String> ts = new ArrayList<String>();
              if(fac.getFPlayerAdmin().getPlayer() != null){
                  ts.add(fac.getFPlayerAdmin().getPlayer().getName());
                  ts.add(fac.getFPlayerAdmin().getPowerRounded() + "");
              }
              for(Map.Entry<String,Integer> entry : modpowers.entrySet()){
                  ts.add(entry.getKey());
                  ts.add(entry.getValue() + "");
              }
              for(Map.Entry<String,Integer> entry : powers.entrySet()){
                  ts.add(entry.getKey());
                  ts.add(entry.getValue() + "");
              }
              return ts;
          }







      }

      ---------- END SOURCE ----------

            vromero Vicente Arturo Romero Zaldivar
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: