SQL Errors

Discussion in 'Plugin Development' started by EazyGamer, Feb 1, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    EazyGamer

    Hello I'm adding SQL function to my plugin and i get these errors
    Code:
    [14:54:46 WARN]: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Commun
    ications link failure
     
    The last packet sent successfully to the server was 0 milliseconds ago. The driv
    er has not received any packets from the server.
    [14:54:46 WARN]:        at sun.reflect.NativeConstructorAccessorImpl.newInstance
    0(Native Method)
    [14:54:46 WARN]:        at sun.reflect.NativeConstructorAccessorImpl.newInstance
    (Unknown Source)
    [14:54:46 WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInst
    ance(Unknown Source)
    [14:54:46 WARN]:        at java.lang.reflect.Constructor.newInstance(Unknown Sou
    rce)
    [14:54:46 WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
    [14:54:46 WARN]:        at com.mysql.jdbc.SQLError.createCommunicationsException
    (SQLError.java:1116)
    [14:54:46 WARN]:        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:343)
    [14:54:46 WARN]:        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionI
    mpl.java:2334)
    [14:54:46 WARN]:        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(Conne
    ctionImpl.java:2371)
    [14:54:46 WARN]:        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionI
    mpl.java:2163)
    [14:54:46 WARN]:        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.j
    ava:794)
    [14:54:46 WARN]:        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection
    .java:47)
    [14:54:46 WARN]:        at sun.reflect.NativeConstructorAccessorImpl.newInstance
    0(Native Method)
    [14:54:46 WARN]:        at sun.reflect.NativeConstructorAccessorImpl.newInstance
    (Unknown Source)
    [14:54:46 WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInst
    ance(Unknown Source)
    [14:54:46 WARN]:        at java.lang.reflect.Constructor.newInstance(Unknown Sou
    rce)
    [14:54:46 WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
    [14:54:46 WARN]:        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionI
    mpl.java:378)
    [14:54:46 WARN]:        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegist
    eringDriver.java:305)
    [14:54:46 WARN]:        at java.sql.DriverManager.getConnection(Unknown Source)
    [14:54:46 WARN]:        at java.sql.DriverManager.getConnection(Unknown Source)
    [14:54:46 WARN]:        at com.eazygamer.kitpvp.Kitpvp.openConnection(Kitpvp.jav
    a:82)
    [14:54:46 WARN]:        at com.eazygamer.kitpvp.Kitpvp.onPlayerLogin(Kitpvp.java
    :118)
    [14:54:46 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
    ethod)
    [14:54:46 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
    ource)
    [14:54:46 WARN]:        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
    wn Source)
    [14:54:46 WARN]:        at java.lang.reflect.Method.invoke(Unknown Source)
    [14:54:46 WARN]:        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(Jav
    aPluginLoader.java:318)
    [14:54:46 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(Regist
    eredListener.java:62)
    [14:54:46 WARN]:        at org.bukkit.plugin.SimplePluginManager.fireEvent(Simpl
    ePluginManager.java:481)
    [14:54:46 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(Simpl
    ePluginManager.java:466)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.PlayerList.attemptLogin(
    PlayerList.java:362)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.LoginListener.c(LoginLis
    tener.java:70)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.LoginListener.a(LoginLis
    tener.java:42)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.NetworkManager.a(Network
    Manager.java:149)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.ServerConnection.c(Sourc
    eFile:134)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.u(Minecr
    aftServer.java:655)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.DedicatedServer.u(Dedica
    tedServer.java:250)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.t(Minecr
    aftServer.java:545)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.run(Mine
    craftServer.java:457)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.ThreadServerApplication.
    run(SourceFile:617)
    [14:54:46 WARN]: Caused by: java.net.ConnectException: Connection timed out: con
    nect
    [14:54:46 WARN]:        at java.net.DualStackPlainSocketImpl.connect0(Native Met
    hod)
    [14:54:46 WARN]:        at java.net.DualStackPlainSocketImpl.socketConnect(Unkno
    wn Source)
    [14:54:46 WARN]:        at java.net.AbstractPlainSocketImpl.doConnect(Unknown So
    urce)
    [14:54:46 WARN]:        at java.net.AbstractPlainSocketImpl.connectToAddress(Unk
    nown Source)
    [14:54:46 WARN]:        at java.net.AbstractPlainSocketImpl.connect(Unknown Sour
    ce)
    [14:54:46 WARN]:        at java.net.PlainSocketImpl.connect(Unknown Source)
    [14:54:46 WARN]:        at java.net.SocksSocketImpl.connect(Unknown Source)
    [14:54:46 WARN]:        at java.net.Socket.connect(Unknown Source)
    [14:54:46 WARN]:        at java.net.Socket.connect(Unknown Source)
    [14:54:46 WARN]:        at java.net.Socket.<init>(Unknown Source)
    [14:54:46 WARN]:        at java.net.Socket.<init>(Unknown Source)
    [14:54:46 WARN]:        at com.mysql.jdbc.StandardSocketFactory.connect(Standard
    SocketFactory.java:254)
    [14:54:46 WARN]:        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:292)
    [14:54:46 WARN]:        ... 34 more
    [14:54:46 WARN]: java.lang.NullPointerException
    [14:54:46 WARN]:        at com.eazygamer.kitpvp.Kitpvp.playerDataContainsPlayer(
    Kitpvp.java:101)
    [14:54:46 WARN]:        at com.eazygamer.kitpvp.Kitpvp.onPlayerLogin(Kitpvp.java
    :121)
    [14:54:46 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
    ethod)
    [14:54:46 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
    ource)
    [14:54:46 WARN]:        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
    wn Source)
    [14:54:46 WARN]:        at java.lang.reflect.Method.invoke(Unknown Source)
    [14:54:46 WARN]:        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(Jav
    aPluginLoader.java:318)
    [14:54:46 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(Regist
    eredListener.java:62)
    [14:54:46 WARN]:        at org.bukkit.plugin.SimplePluginManager.fireEvent(Simpl
    ePluginManager.java:481)
    [14:54:46 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(Simpl
    ePluginManager.java:466)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.PlayerList.attemptLogin(
    PlayerList.java:362)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.LoginListener.c(LoginLis
    tener.java:70)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.LoginListener.a(LoginLis
    tener.java:42)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.NetworkManager.a(Network
    Manager.java:149)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.ServerConnection.c(Sourc
    eFile:134)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.u(Minecr
    aftServer.java:655)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.DedicatedServer.u(Dedica
    tedServer.java:250)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.t(Minecr
    aftServer.java:545)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.run(Mine
    craftServer.java:457)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.ThreadServerApplication.
    run(SourceFile:617)
    [14:54:46 WARN]: java.lang.NullPointerException
    [14:54:46 WARN]:        at com.eazygamer.kitpvp.Kitpvp.onPlayerLogin(Kitpvp.java
    :140)
    [14:54:46 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
    ethod)
    [14:54:46 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
    ource)
    [14:54:46 WARN]:        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
    wn Source)
    [14:54:46 WARN]:        at java.lang.reflect.Method.invoke(Unknown Source)
    [14:54:46 WARN]:        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(Jav
    aPluginLoader.java:318)
    [14:54:46 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(Regist
    eredListener.java:62)
    [14:54:46 WARN]:        at org.bukkit.plugin.SimplePluginManager.fireEvent(Simpl
    ePluginManager.java:481)
    [14:54:46 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(Simpl
    ePluginManager.java:466)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.PlayerList.attemptLogin(
    PlayerList.java:362)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.LoginListener.c(LoginLis
    tener.java:70)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.LoginListener.a(LoginLis
    tener.java:42)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.NetworkManager.a(Network
    Manager.java:149)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.ServerConnection.c(Sourc
    eFile:134)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.u(Minecr
    aftServer.java:655)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.DedicatedServer.u(Dedica
    tedServer.java:250)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.t(Minecr
    aftServer.java:545)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.run(Mine
    craftServer.java:457)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.ThreadServerApplication.
    run(SourceFile:617)
    [14:54:46 WARN]: java.lang.NullPointerException
    [14:54:46 WARN]:        at com.eazygamer.kitpvp.Kitpvp.closeConnection(Kitpvp.ja
    va:93)
    [14:54:46 WARN]:        at com.eazygamer.kitpvp.Kitpvp.onPlayerLogin(Kitpvp.java
    :150)
    [14:54:46 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
    ethod)
    [14:54:46 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown S
    ource)
    [14:54:46 WARN]:        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unkno
    wn Source)
    [14:54:46 WARN]:        at java.lang.reflect.Method.invoke(Unknown Source)
    [14:54:46 WARN]:        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(Jav
    aPluginLoader.java:318)
    [14:54:46 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(Regist
    eredListener.java:62)
    [14:54:46 WARN]:        at org.bukkit.plugin.SimplePluginManager.fireEvent(Simpl
    ePluginManager.java:481)
    [14:54:46 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(Simpl
    ePluginManager.java:466)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.PlayerList.attemptLogin(
    PlayerList.java:362)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.LoginListener.c(LoginLis
    tener.java:70)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.LoginListener.a(LoginLis
    tener.java:42)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.NetworkManager.a(Network
    Manager.java:149)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.ServerConnection.c(Sourc
    eFile:134)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.u(Minecr
    aftServer.java:655)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.DedicatedServer.u(Dedica
    tedServer.java:250)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.t(Minecr
    aftServer.java:545)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.MinecraftServer.run(Mine
    craftServer.java:457)
    [14:54:46 WARN]:        at net.minecraft.server.v1_7_R1.ThreadServerApplication.
    run(SourceFile:617)
    
    Here is my code
    Code:java
    1. package com.eazygamer.kitpvp;
    2.  
    3. import java.io.File;
    4. import java.io.FileOutputStream;
    5. import java.io.IOException;
    6. import java.io.InputStreamReader;
    7. import java.net.MalformedURLException;
    8. import java.net.URL;
    9. import java.net.URLConnection;
    10. import java.nio.channels.Channels;
    11. import java.nio.channels.ReadableByteChannel;
    12. import java.sql.Connection;
    13. import java.sql.DriverManager;
    14. import java.sql.PreparedStatement;
    15. import java.sql.ResultSet;
    16. import java.sql.SQLException;
    17. import java.util.logging.Level;
    18. import java.util.logging.Logger;
    19.  
    20. import lib.PatPeter.SQLibrary.Database;
    21. import lib.PatPeter.SQLibrary.MySQL;
    22.  
    23. import org.bukkit.Bukkit;
    24. import org.bukkit.configuration.file.FileConfiguration;
    25. import org.bukkit.entity.Player;
    26. import org.bukkit.event.EventHandler;
    27. import org.bukkit.event.Listener;
    28. import org.bukkit.event.player.PlayerLoginEvent;
    29. import org.bukkit.plugin.InvalidDescriptionException;
    30. import org.bukkit.plugin.InvalidPluginException;
    31. import org.bukkit.plugin.Plugin;
    32. import org.bukkit.plugin.UnknownDependencyException;
    33. import org.bukkit.plugin.java.JavaPlugin;
    34. import org.bukkit.scoreboard.Scoreboard;
    35.  
    36. import com.eazygamer.kitpvp.commands.CommandHandler;
    37.  
    38. public class Kitpvp extends JavaPlugin implements Listener{
    39. //Variables
    40. public Database sql;
    41. private static Connection connection;
    42.  
    43.  
    44. //When the plugin is Enabled
    45. public void onEnable(){
    46. config();
    47. getCommand("kitpvp").setExecutor(new CommandHandler());
    48. getServer().getPluginManager().registerEvents(this, this);
    49.  
    50.  
    51.  
    52. }
    53.  
    54. public void config() {
    55. FileConfiguration config = getConfig();
    56. config.addDefault("SQL.Hostname", "Ip/Hostname");
    57. config.addDefault("SQL.Prefix", "[Prefix]");
    58. config.addDefault("SQL.Port", "3306 #Dont Change");
    59. config.addDefault("SQL.Database", "Database");
    60. config.addDefault("SQL.Username", "Username");
    61. config.addDefault("SQL.Password", "Password");
    62.  
    63. }
    64. //When the plugin is Disabled
    65. public void onDisable(){
    66. try{
    67. if(connection != null && connection.isClosed())
    68. connection.close();
    69. }catch(SQLException e){
    70. e.printStackTrace();
    71. }
    72. }
    73. //Methods
    74. public void connectionGet(){
    75. String host = this.getConfig().getString("SQL.Hostname");
    76. }
    77.  
    78.  
    79.  
    80. public synchronized static void openConnection(){
    81. try{
    82. connection = DriverManager.getConnection(
    83. "jdbc:mysql://199.58.186.24:3306/NOT TO SEE",
    84. "NOT TO SEE",
    85. "NOT TO SEE");
    86.  
    87. }catch(Exception e){
    88. e.printStackTrace();
    89. }
    90. }
    91. public synchronized static void closeConnection(){
    92. try{
    93. connection.close();
    94.  
    95. }catch(Exception e){
    96. e.printStackTrace();
    97. }
    98. }
    99. public synchronized static boolean playerDataContainsPlayer(Player player){
    100. try{
    101. PreparedStatement sql = connection.prepareStatement("SELECT * FROM `player_data` WHERE player=?;");
    102. sql.setString(1, player.getName());
    103. ResultSet resultSet = sql.executeQuery();
    104. boolean containsPlayer = resultSet.next();
    105. sql.close();
    106. resultSet.close();
    107. return containsPlayer;
    108. }catch(Exception e){
    109. e.printStackTrace();
    110. return false;
    111. }
    112. }
    113.  
    114.  
    115.  
    116. @EventHandler
    117. public void onPlayerLogin(PlayerLoginEvent event){
    118. openConnection();
    119. try{
    120. int previousLogins = 0;
    121. if(playerDataContainsPlayer(event.getPlayer())){
    122. PreparedStatement sql = connection
    123. .prepareStatement("SELECT logins FROM `player_data` WHERE player =?;");
    124. sql.setString(1, event.getPlayer().getName());
    125.  
    126. ResultSet res = sql.executeQuery();
    127. res.next();
    128. previousLogins = res.getInt("logins");
    129.  
    130. PreparedStatement loginsUpdate = connection.prepareStatement("UPDATE `player_data` SET logins =? WHERE player=?;");
    131. loginsUpdate.setInt(1, previousLogins + 1);
    132. loginsUpdate.setString(2, event.getPlayer().getName());
    133. loginsUpdate.executeUpdate();
    134.  
    135. loginsUpdate.close();
    136. sql.close();
    137. res.close();
    138.  
    139. } else{
    140. PreparedStatement newPlayer = connection.prepareStatement("INSERT INTO `player_data` values (?,0,0,1);");
    141. newPlayer.setString(1, event.getPlayer().getName());
    142. newPlayer.execute();
    143. newPlayer.close();
    144. }
    145.  
    146.  
    147. }catch(Exception e){
    148. e.printStackTrace();
    149. }finally{
    150. closeConnection();
    151. }
    152. }
    153.  
    154. }
    155.  


    Please Help
     
  2. Offline

    1Rogue

    Don't keep a constantly open connection. Open and close it as needed
     
  3. Offline

    EazyGamer

    ? 1Rogue

    I dont understand

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 6, 2016
  4. Offline

    GaaTavares

    You must open a connection to execute SQLs and stuff based on SQL. He's saying you don't need to keep it open, just open when you need to run something with sql, then close it again.
     
  5. Offline

    L33m4n123


    That's what he does, unless I am missing something.

    He opens the connection in the PlayerLoginEvent, does his stuff and then closes it again

    EazyGamer

    Code:
    [FONT=Consolas][14:54:46 WARN]: java.lang.NullPointerException[/FONT]
    [FONT=Consolas][14:54:46 WARN]:        at com.eazygamer.kitpvp.Kitpvp.closeConnection(Kitpvp.ja
    va:93)
    [14:54:46 WARN]:        at com.eazygamer.kitpvp.Kitpvp.onPlayerLogin(Kitpvp.java
    :150)
    [/FONT]
    You got a NPE there at connect.close();
     
  6. Offline

    EazyGamer

    So why's it giving me that huge error list and not letting me join the game Internal Exception io.netty.handler.timeout.ReadTimeoutException
    L33m4n123
    How to solve
     
  7. Offline

    L33m4n123

    By fixing your mySQL stuff. connection is obviously still null that means your openConnection() method does not seem to be working correctly
     
  8. Offline

    EazyGamer

    Can you tell me why?
     
  9. Offline

    1Rogue

    Are you able to connect to the sql server outside of minecraft?
     
  10. Offline

    EazyGamer

    Yes

    Working Fine!

    Anyone Else can help ??????

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 6, 2016
  11. Offline

    Iaccidentally

    If you want help, you need to actually ask a specific and detailed question. Your connection is null when you are trying to call it, therefore you are getting that error. As previously mentioned, you should not leave your connection open all the time. Furthermore, you really should not be using static fields/instances/methods. Due to you making it static, the lifespan of your connection field is that of the JVM it is ran in, which can lead to all kinds of issues.
     
  12. Offline

    EazyGamer

    Iaccidentally
    Ok
    Can you tell me how to fix the null error
    stop it being open all the time
     
  13. Offline

    Iaccidentally

    on line 101, you call connection.prepareStatement(), but at that point, connection has not been opened, so it is null. you need to open the connection first. Also, those methods really should not be static, especially when you are dealing with threading.
     
  14. Offline

    EazyGamer

    public void onPlayerLogin(PlayerLoginEvent event){
    openConnection();???
    try{
    int previousLogins = 0;
    if(playerDataContainsPlayer(event.getPlayer())){ Iaccidentally
     
Thread Status:
Not open for further replies.

Share This Page