Jump to content
  • 0

Unclosed Connection! Java.lang.runtimeexception


Question

Posted

hey guys i get this error as the title say java.lang.RuntimeException and then my server freezes and nothing happens

 

This is the code i've modified (L2Network & Topzone)

im pretty sure this is causing this problem

Also if you vote for NETWORK and srv votes are 24 and reward at 28

Then srv votes update to ->25 and reward at 30 votes

it doesnt save them...can anyone help me?

package com.l2jfrozen.gameserver.handler;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.model.L2World;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.entity.Announcements;
import com.l2jfrozen.gameserver.powerpak.PowerPakConfig;
import com.l2jfrozen.gameserver.thread.ThreadPoolManager;

/**
 * @author L2jFrozen <br>
 * <br>
 *         Network working with L2jFrozen AutoVoteReward: <br>
 *         Hopzone -> http://l2.hopzone.net/ <br>
 *         Topzone -> http://l2topzone.com/ <br>
 *         L2network -> http://l2network.eu/ <br>
 */

public class AutoVoteRewardHandler
{
	protected static final Logger LOGGER = Logger.getLogger(AutoVoteRewardHandler.class);
	
	protected List<String> already_rewarded;
	
	private int _l2networkVotesCount = 0;
	private int _hopzoneVotesCount = 0;
	private int _topzoneVotesCount = 0;
	protected List<String> _already_rewarded;
	
	protected static boolean _l2network = false;
	protected static boolean _topzone = false;
	protected static boolean _hopzone = false;
	
	private AutoVoteRewardHandler()
	{
		LOGGER.info("Vote Reward System Initiated.");
		
		if (_hopzone)
		{
			int hopzone_votes = getHopZoneVotes();
			
			if (hopzone_votes == -1)
			{
				hopzone_votes = 0;
			}
			
			setHopZoneVoteCount(hopzone_votes);
		}
		
		if (_l2network)
		{
			int l2network_votes = getL2NetworkVotes();
			
			if (l2network_votes == -1)
			{
				l2network_votes = 0;
			}
			
			setL2NetworkVoteCount(l2network_votes);
		}
		
		if (_topzone)
		{
			int topzone_votes = getTopZoneVotes();
			
			if (topzone_votes == -1)
			{
				topzone_votes = 0;
			}
			
			setTopZoneVoteCount(topzone_votes);
		}
		
		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), PowerPakConfig.VOTES_SYSYEM_INITIAL_DELAY, PowerPakConfig.VOTES_SYSYEM_STEP_DELAY);
	}
	
	protected class AutoReward implements Runnable
	{
		@Override
		public void run()
		{
			final int minutes = (PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 1000) / 60;
			
			if (_hopzone)
			{
				final int hopzone_votes = getHopZoneVotes();
				
				if (hopzone_votes != -1)
				{
					LOGGER.info("[VoteReward] Server HOPZONE Votes: " + hopzone_votes);
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Actual HOPZONE Votes are " + hopzone_votes + "");
					
					if (hopzone_votes != 0 && hopzone_votes >= getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
					{
						_already_rewarded = new ArrayList<>();
						
						final Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
						
						Announcements.getInstance().gameAnnounceToAll("[VoteReward] Great Work! Check your inventory for Reward!");
						
						// L2ItemInstance item;
						for (final L2PcInstance player : pls)
						{
							if (player != null && !player.isInOfflineMode() && player.isOnline() == 1)
							{
								if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player)))
								{
									
									final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
									for (final Integer i : items)
									{
										// item = player.getInventory().getItemByItemId(i);
										
										// TODO: check on maxstack for item
										player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);
										
									}
									
								}
							}
						}
						setHopZoneVoteCount(hopzone_votes);
					}
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Next Reward in " + minutes + " minutes at " + (getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!");
					// site web
					
					
				}
				
			}
			
			if (_topzone && _hopzone && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY > 0)
			{
				try
				{
					Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 2);
				}
				catch (final InterruptedException e)
				{
					if (Config.ENABLE_ALL_EXCEPTIONS)
						e.printStackTrace();
				}
			}
			
			if (_topzone)
			{
				final int topzone_votes = getTopZoneVotes();
				
				if (topzone_votes != -1)
				{
					LOGGER.info("[VoteReward] Server TOPZONE Votes: " + topzone_votes);
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Actual TOPZONE Votes are " + topzone_votes + "");
					
					if (topzone_votes != 0 && topzone_votes >= getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
					{
						_already_rewarded = new ArrayList<>();
						
						final Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
						
						Announcements.getInstance().gameAnnounceToAll("[VoteReward] Great Work! Check your inventory for Reward!");
						
						// L2ItemInstance item;
						for (final L2PcInstance player : pls)
						{
							if (player != null && !player.isInOfflineMode() && player.isOnline() == 1)
							{
								if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player)))
								{
									final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
									for (final Integer i : items)
									{
										// item = player.getInventory().getItemByItemId(i);
										
										// TODO: check on maxstack for item
										player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);
									}
								}
							}
						}
						setTopZoneVoteCount(topzone_votes);
					}
					
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Next Reward in " + minutes + " minutes at " + (getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!");
					// site web
					
				}
			}
			
			if (_topzone && _hopzone && _l2network && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY > 0)
			{
				try
				{
					Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 2);
				}
				catch (final InterruptedException e)
				{
					if (Config.ENABLE_ALL_EXCEPTIONS)
						e.printStackTrace();
				}
			}
			
			  if(_l2network)
	            {
	                int l2network_votes = getL2NetworkVotes();
	                if(l2network_votes != -1)
	                {
	                    LOGGER.info("Network Votes: " + l2network_votes);
	                    Announcements.getInstance().gameAnnounceToAll("[VoteReward] Actual L2NETWORK Votes are " + l2network_votes + "");

	                    if(l2network_votes != 0 && l2network_votes >= getL2NetworkVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
	                    {
	                        already_rewarded = new ArrayList<>();

	                        Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
	                        Announcements.getInstance().gameAnnounceToAll("[VoteReward] Great Work! Check your inventory for Reward!");

	                        for(L2PcInstance player : pls)
	                        {
	                            if(player != null)
	                            {
	                            	final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
									for (final Integer i : items)
									{
										// item = player.getInventory().getItemByItemId(i);
										
										// TODO: check on maxstack for item
										player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);
									}
	                                }
	                            }
	                        }

	                        setL2NetworkVoteCount(l2network_votes);
	                    }
	                    Announcements.getInstance().gameAnnounceToAll("[VoteReward] Next Reward in " + minutes + " minutes at " + (getL2NetworkVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!");
	                }
	            }
	        }
	
	// Check boxes
	protected boolean checkSingleBox(final L2PcInstance player)
	{
		if (player == null)
			return false;
		
		if (player.getClient() != null && player.getClient().getConnection() != null && !player.getClient().getConnection().isClosed() && player.isOnline() == 1 && !player.isInOfflineMode())
		{
			final String playerip = player.getClient().getConnection().getInetAddress().getHostAddress();
			
			if (_already_rewarded.contains(playerip))
				return false;
			_already_rewarded.add(playerip);
			return true;
		}
		
		// if no connection (maybe offline shop) dnt reward
		return false;
	}
	
	 protected int getHopZoneVotes()
	    {
	        try
	        {
	            BufferedReader in = new BufferedReader(new InputStreamReader(new URL(PowerPakConfig.VOTES_SITE_HOPZONE_URL).openConnection().getInputStream()));
	            String[] tokens = in.readLine().split(",");
	            in.close();
	            return Integer.parseInt(tokens[1].substring(tokens[1].indexOf(":") + 1, tokens[1].length()));
	        }
	        catch (final Exception e)
	        {
	                LOGGER.warn("[VoteReward] Hopzone is offline or something is wrong in link");
	                Announcements.getInstance().gameAnnounceToAll("[VoteReward] HOPZONE is offline. We will check reward as it will be online again");
	        }
	        return -1;
	    }
	
	
	    protected int getTopZoneVotes()
	    {
	        InputStreamReader isr = null;
	        BufferedReader br = null;
	        try
	        {
	     	   URLConnection con = new URL(PowerPakConfig.VOTES_SITE_TOPZONE_URL).openConnection();
	                 con.addRequestProperty("User-Agent", "L2TopZone");
	                 con.setConnectTimeout(5000);
	                 isr = new InputStreamReader(con.getInputStream());
	                 br = new BufferedReader(isr);

	                 String line;
	                 while ((line = br.readLine()) != null)
	                 {
	                         
	                                 int votes = Integer.valueOf(line);
	                                 return votes;
	                       
	                 }
	                
	                 br.close();
	                 isr.close();
	         }
	        catch (Exception e)
	        {
	            if (_topzone)
	            	LOGGER.warn("TOPZONE is offline. We will check reward as it will be online again.");
	            Announcements.getInstance().gameAnnounceToAll("[VoteReward] TOPZONE is offline. We will check reward as it will be online again");
	        }
	        return -1;
	    }
	
	protected int getL2NetworkVotes()
    {
        InputStreamReader isr = null;
        BufferedReader br = null;
        try
        {
                URLConnection con = new URL(PowerPakConfig.VOTES_SITE_L2NETWORK_URL).openConnection();
                con.addRequestProperty("User-Agent", "Mozilla/5.0");
                con.setConnectTimeout(5000);
                isr = new InputStreamReader(con.getInputStream());
                br = new BufferedReader(isr);
               
                String line;
                while ((line = br.readLine()) != null)
                {
                        if (line.contains("<div class=\"tls-in-sts\"><b style"))
                        {
                                int votes = Integer.valueOf(line.split(">")[2].replace("</b", ""));
                                return votes;
                        }
                }
               
                br.close();
                isr.close();
        }
        catch (Exception e)
        {
            if (_l2network)
            	LOGGER.warn("NETWORK is offline. We will check reward as it will be online again.");
            Announcements.getInstance().gameAnnounceToAll("[VoteReward] L2NETWORK is offline. We will check reward as it will be online again");
        }
        return -1;
    }
	
	protected void setHopZoneVoteCount(final int voteCount)
	{
		_hopzoneVotesCount = voteCount;
	}
	
	protected int getHopZoneVoteCount()
	{
		return _hopzoneVotesCount;
	}
	
	protected void setTopZoneVoteCount(final int voteCount)
	{
		_topzoneVotesCount = voteCount;
	}
	
	protected int getTopZoneVoteCount()
	{
		return _topzoneVotesCount;
	}
	
	protected void setL2NetworkVoteCount(final int voteCount)
	{
		_l2networkVotesCount = voteCount;
	}
	
	protected int getL2NetworkVoteCount()
	{
		return _l2networkVotesCount;
	}
	
	public static AutoVoteRewardHandler getInstance()
	{
		Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
		
		if (PowerPakConfig.VOTES_SITE_HOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_HOPZONE_URL.equals(""))
			_hopzone = true;
		
		if (PowerPakConfig.VOTES_SITE_TOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_TOPZONE_URL.equals(""))
			_topzone = true;
		
		if (PowerPakConfig.VOTES_SITE_L2NETWORK_URL != null && !PowerPakConfig.VOTES_SITE_L2NETWORK_URL.equals(""))
			_l2network = true;
		
		if (_topzone || _hopzone || _l2network)
			return SingletonHolder._instance;
		
		return null;
	}
	
	@SuppressWarnings("synthetic-access")
	private static class SingletonHolder
	{
		protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();
	}
}

Recommended Posts

  • 0
Posted (edited)

can i pm you?

 

all i can see in that link is really strange..looks line chinese to me :S

Edited by protoftw
  • 0
Posted (edited)

can i pm you?

 

Nope, and it's my final answer. You can seek more about the subject on stackoverflow website, I guess. Put all ressources on the try, like that you don't have to care about closing them. Atm you got ressource leak (and if your eclipse was correctly setup-ed, it would show as warning).

 

Edit : if it's chinese, take your time and learn.

Edited by Tryskell
  • 0
Posted
package com.l2jfrozen.gameserver.handler;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.model.L2World;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.entity.Announcements;
import com.l2jfrozen.gameserver.powerpak.PowerPakConfig;
import com.l2jfrozen.gameserver.thread.ThreadPoolManager;

/**
 * @author L2jFrozen <br>
 * <br>
 *         Network working with L2jFrozen AutoVoteReward: <br>
 *         Hopzone -> http://l2.hopzone.net/ <br>
 *         Topzone -> http://l2topzone.com/ <br>
 *         L2network -> http://l2network.eu/ <br>
 */

public class AutoVoteRewardHandler
{
	protected static final Logger LOGGER = Logger.getLogger(AutoVoteRewardHandler.class);
	
	protected List<String> already_rewarded;
	
	private int _l2networkVotesCount = 0;
	private int _hopzoneVotesCount = 0;
	private int _topzoneVotesCount = 0;
	protected List<String> _already_rewarded;
	
	protected static boolean _l2network = false;
	protected static boolean _topzone = false;
	protected static boolean _hopzone = false;
	
	private AutoVoteRewardHandler()
	{
		LOGGER.info("Vote Reward System Initiated.");
		
		if (_hopzone)
		{
			int hopzone_votes = getHopZoneVotes();
			
			if (hopzone_votes == -1)
			{
				hopzone_votes = 0;
			}
			
			setHopZoneVoteCount(hopzone_votes);
		}
		
		if (_l2network)
		{
			int l2network_votes = getL2NetworkVotes();
			
			if (l2network_votes == -1)
			{
				l2network_votes = 0;
			}
			
			setL2NetworkVoteCount(l2network_votes);
		}
		
		if (_topzone)
		{
			int topzone_votes = getTopZoneVotes();
			
			if (topzone_votes == -1)
			{
				topzone_votes = 0;
			}
			
			setTopZoneVoteCount(topzone_votes);
		}
		
		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), PowerPakConfig.VOTES_SYSYEM_INITIAL_DELAY, PowerPakConfig.VOTES_SYSYEM_STEP_DELAY);
	}
	
	protected class AutoReward implements Runnable
	{
		@Override
		public void run()
		{
			final int minutes = (PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 1000) / 60;
			
			if (_hopzone)
			{
				final int hopzone_votes = getHopZoneVotes();
				
				if (hopzone_votes != -1)
				{
					LOGGER.info("[VoteReward] Server HOPZONE Votes: " + hopzone_votes);
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Actual HOPZONE Votes are " + hopzone_votes + "");
					
					if (hopzone_votes != 0 && hopzone_votes >= getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
					{
						_already_rewarded = new ArrayList<>();
						
						final Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
						
						Announcements.getInstance().gameAnnounceToAll("[VoteReward] Great Work! Check your inventory for Reward!");
						
						// L2ItemInstance item;
						for (final L2PcInstance player : pls)
						{
							if (player != null && !player.isInOfflineMode() && player.isOnline() == 1)
							{
								if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player)))
								{
									
									final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
									for (final Integer i : items)
									{
										// item = player.getInventory().getItemByItemId(i);
										
										// TODO: check on maxstack for item
										player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);
										
									}
									
								}
							}
						}
						setHopZoneVoteCount(hopzone_votes);
					}
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Next Reward in " + minutes + " minutes at " + (getHopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!");
					// site web
					
					
				}
				
			}
			
			if (_topzone && _hopzone && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY > 0)
			{
				try
				{
					Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 2);
				}
				catch (final InterruptedException e)
				{
					if (Config.ENABLE_ALL_EXCEPTIONS)
						e.printStackTrace();
				}
			}
			
			if (_topzone)
			{
				final int topzone_votes = getTopZoneVotes();
				
				if (topzone_votes != -1)
				{
					LOGGER.info("[VoteReward] Server TOPZONE Votes: " + topzone_votes);
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Actual TOPZONE Votes are " + topzone_votes + "");
					
					if (topzone_votes != 0 && topzone_votes >= getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
					{
						_already_rewarded = new ArrayList<>();
						
						final Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
						
						Announcements.getInstance().gameAnnounceToAll("[VoteReward] Great Work! Check your inventory for Reward!");
						
						// L2ItemInstance item;
						for (final L2PcInstance player : pls)
						{
							if (player != null && !player.isInOfflineMode() && player.isOnline() == 1)
							{
								if (player._active_boxes <= 1 || (player._active_boxes > 1 && checkSingleBox(player)))
								{
									final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
									for (final Integer i : items)
									{
										// item = player.getInventory().getItemByItemId(i);
										
										// TODO: check on maxstack for item
										player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);
									}
								}
							}
						}
						setTopZoneVoteCount(topzone_votes);
					}
					
					Announcements.getInstance().gameAnnounceToAll("[VoteReward] Next Reward in " + minutes + " minutes at " + (getTopZoneVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!");
					// site web
					
				}
			}
			
			if (_topzone && _hopzone && _l2network && PowerPakConfig.VOTES_SYSYEM_STEP_DELAY > 0)
			{
				try
				{
					Thread.sleep(PowerPakConfig.VOTES_SYSYEM_STEP_DELAY / 2);
				}
				catch (final InterruptedException e)
				{
					if (Config.ENABLE_ALL_EXCEPTIONS)
						e.printStackTrace();
				}
			}
			
			  if(_l2network)
	            {
	                int l2network_votes = getL2NetworkVotes();
	                if(l2network_votes != -1)
	                {
	                    LOGGER.info("Network Votes: " + l2network_votes);
	                    Announcements.getInstance().gameAnnounceToAll("[VoteReward] Actual L2NETWORK Votes are " + l2network_votes + "");

	                    if(l2network_votes != 0 && l2network_votes >= getL2NetworkVoteCount() + PowerPakConfig.VOTES_FOR_REWARD)
	                    {
	                        already_rewarded = new ArrayList<>();

	                        Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers();
	                        Announcements.getInstance().gameAnnounceToAll("[VoteReward] Great Work! Check your inventory for Reward!");

	                        for(L2PcInstance player : pls)
	                        {
	                            if(player != null)
	                            {
	                            	final Set<Integer> items = PowerPakConfig.VOTES_REWARDS_LIST.keySet();
									for (final Integer i : items)
									{
										// item = player.getInventory().getItemByItemId(i);
										
										// TODO: check on maxstack for item
										player.addItem("reward", i, PowerPakConfig.VOTES_REWARDS_LIST.get(i), player, true);
									}
	                                }
	                            }
	                        }

	                        setL2NetworkVoteCount(l2network_votes);
	                    }
	                    Announcements.getInstance().gameAnnounceToAll("[VoteReward] Next Reward in " + minutes + " minutes at " + (getL2NetworkVoteCount() + PowerPakConfig.VOTES_FOR_REWARD) + " Votes!");
	                }
	            }
	        }
	
	// Check boxes
	protected boolean checkSingleBox(final L2PcInstance player)
	{
		if (player == null)
			return false;
		
		if (player.getClient() != null && player.getClient().getConnection() != null && !player.getClient().getConnection().isClosed() && player.isOnline() == 1 && !player.isInOfflineMode())
		{
			final String playerip = player.getClient().getConnection().getInetAddress().getHostAddress();
			
			if (_already_rewarded.contains(playerip))
				return false;
			_already_rewarded.add(playerip);
			return true;
		}
		
		// if no connection (maybe offline shop) dnt reward
		return false;
	}
	
	 protected int getHopZoneVotes()
	    {
	        try
	        {
	            BufferedReader in = new BufferedReader(new InputStreamReader(new URL(PowerPakConfig.VOTES_SITE_HOPZONE_URL).openConnection().getInputStream()));
	            String[] tokens = in.readLine().split(",");
	            in.close();
	            return Integer.parseInt(tokens[1].substring(tokens[1].indexOf(":") + 1, tokens[1].length()));
	        }
	        catch (final Exception e)
	        {
	                LOGGER.warn("[VoteReward] Hopzone is offline or something is wrong in link");
	                Announcements.getInstance().gameAnnounceToAll("[VoteReward] HOPZONE is offline. We will check reward as it will be online again");
	        }
	        return -1;
	    }
	
	
	    protected int getTopZoneVotes()
	    {
	        InputStreamReader isr = null;
	        BufferedReader br = null;
	        try
	        {
	     	   URLConnection con = new URL(PowerPakConfig.VOTES_SITE_TOPZONE_URL).openConnection();
	                 con.addRequestProperty("User-Agent", "L2TopZone");
	                 con.setConnectTimeout(5000);
	                 isr = new InputStreamReader(con.getInputStream());
	                 br = new BufferedReader(isr);

	                 String line;
	                 while ((line = br.readLine()) != null)
	                 {
	                         
	                                 int votes = Integer.valueOf(line);
	                                 return votes;
	                       
	                 }
	                
	                 br.close();
	                 isr.close();
					 con.close();
	         }
	        catch (Exception e)
	        {
	            if (_topzone)
	            	LOGGER.warn("TOPZONE is offline. We will check reward as it will be online again.");
	            Announcements.getInstance().gameAnnounceToAll("[VoteReward] TOPZONE is offline. We will check reward as it will be online again");
	        }
			finally
			{
				con.close();
				LOGGER.warn("SOMETHING WENT WRONG!!!")
			}
	        return -1;
	    }
	
	protected int getL2NetworkVotes()
    {
        InputStreamReader isr = null;
        BufferedReader br = null;
        try
        {
                URLConnection con = new URL(PowerPakConfig.VOTES_SITE_L2NETWORK_URL).openConnection();
                con.addRequestProperty("User-Agent", "Mozilla/5.0");
                con.setConnectTimeout(5000);
                isr = new InputStreamReader(con.getInputStream());
                br = new BufferedReader(isr);
               
                String line;
                while ((line = br.readLine()) != null)
                {
                        if (line.contains("<div class=\"tls-in-sts\"><b style"))
                        {
                                int votes = Integer.valueOf(line.split(">")[2].replace("</b", ""));
                                return votes;
                        }
                }
               
                br.close();
                isr.close();
				con.close();
        }
        catch (Exception e)
        {
            if (_l2network)
            	LOGGER.warn("NETWORK is offline. We will check reward as it will be online again.");
            Announcements.getInstance().gameAnnounceToAll("[VoteReward] L2NETWORK is offline. We will check reward as it will be online again");
        }
		finally
			{
				con.close();
				LOGGER.warn("SOMETHING WENT WRONG!!!")
			}
        return -1;
    }
	
	protected void setHopZoneVoteCount(final int voteCount)
	{
		_hopzoneVotesCount = voteCount;
	}
	
	protected int getHopZoneVoteCount()
	{
		return _hopzoneVotesCount;
	}
	
	protected void setTopZoneVoteCount(final int voteCount)
	{
		_topzoneVotesCount = voteCount;
	}
	
	protected int getTopZoneVoteCount()
	{
		return _topzoneVotesCount;
	}
	
	protected void setL2NetworkVoteCount(final int voteCount)
	{
		_l2networkVotesCount = voteCount;
	}
	
	protected int getL2NetworkVoteCount()
	{
		return _l2networkVotesCount;
	}
	
	public static AutoVoteRewardHandler getInstance()
	{
		Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);
		
		if (PowerPakConfig.VOTES_SITE_HOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_HOPZONE_URL.equals(""))
			_hopzone = true;
		
		if (PowerPakConfig.VOTES_SITE_TOPZONE_URL != null && !PowerPakConfig.VOTES_SITE_TOPZONE_URL.equals(""))
			_topzone = true;
		
		if (PowerPakConfig.VOTES_SITE_L2NETWORK_URL != null && !PowerPakConfig.VOTES_SITE_L2NETWORK_URL.equals(""))
			_l2network = true;
		
		if (_topzone || _hopzone || _l2network)
			return SingletonHolder._instance;
		
		return null;
	}
	
	@SuppressWarnings("synthetic-access")
	private static class SingletonHolder
	{
		protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();
	}
}

[GR]Καθε φορα που ανοιγεις ενα connection πρεπει απαραιτητα να το κλεινεις. Τυπου "Connection con = L2DBFactory.getConnection.....". Προσθεσα τα κομματια που ελειπαν, αν το pack σου τρεχει java 1.8 υπαρχει ακομα καλυτερος τροπος να χειριζεσαι ολα τα connections.

  • 0
Posted (edited)

[GR}mou vgazei error sta con.close pou exeis peraseis ...an 8eleis mporw na sou dwsw TEAMVIEWER na mpeis na checkareis

 

EDIT:
 

telika mou vgazei error akoma sta con.close p exei

Edited by protoftw
  • 0
Posted (edited)

Afcourse it doesnt work and whoever gave you the code he must suffer a painful death and get banned.

 

It should be like

 

Connection con = null;

 con = L2Database.BLabla bla

 

in order to call it and close it.

 

Ex

URLConnection con = null;
con = new URL(PowerPakConfig.VOTES_SITES_L2NETWORK_URL).openConnection();
con.close();

Also if you're unable to do such easy thing, i hope you not going for live server anyway cause i'll take sweets and do a double suicide while tryskell drinks his mochito

Edited by AccessDenied
  • 0
Posted

There is no database connection, what the heck are ya talking about T.T

 

 

i hope you not going for live server anyway cause i'll take sweets and do a double suicide while tryskell drinks his mochito

Sadly, his server is live, as he said. T.T

  • 0
Posted

There is no database connection, what the heck are ya talking about T.T

 

 

Sadly, his server is live, as he said. T.T

I gave him example omg and the code is below my example,did you even read you FUCKING pikachu ? Don't talk to your master again else imma put you in my poke ball  :dat:

 

His server is live as he said? XAXAXA you're kidding :D good joke. You joking right? SweeTs? SWEETs???????? YOU JOKING RIGHT?  :'(  :'(

  • 0
Posted

There is no database connection, what the heck are ya talking about T.T

 

 

Sadly, his server is live, as he said. T.T

also mate take the time and respond and do not publish everything that someone wants to tell you in public

 

of course and it's not working because people post code here and tell you that this is THE FIX and then god damn..causing problems..ty guys

 

*AccessDenied u need to chill mate....consider getting lai*** , drinking might be good as u suggested ..it might help!!

 

THANKS AGAIN FOR BEING SO HELPFUL AND NICE TO PEOPLE...U GUYS!

  • 0
Posted

also mate take the time and respond and do not publish everything that someone wants to tell you in public

 

of course and it's not working because people post code here and tell you that this is THE FIX and then god damn..causing problems..ty guys

 

*AccessDenied u need to chill mate....consider getting lai*** , drinking might be good as u suggested ..it might help!!

 

THANKS AGAIN FOR BEING SO HELPFUL AND NICE TO PEOPLE...U GUYS!

What a nice answer for someone who gave you ready code while others just laughing.

 

Next time any mod will tell me "accessDenied" don't spam, i'll rub this on his face and tell him community and users are piece of crap leechers who own brain cancer and  fifth grade

hepatidis

  • 0
Posted

What a nice answer for someone who gave you ready code while others just laughing.

 

Next time any mod will tell me "accessDenied" don't spam, i'll rub this on his face and tell him community and users are piece of crap leechers who own brain cancer and  fifth grade

hepatidis

god damn mate ...take another look at ur post...are those words from an adult who is considered to be serious and also a helpful person??You gave those "TITLES" to urself and that's why im using them..Chill out and let the community be THE COMMUNITY..

GOOD NIGHT...there's no need to have another conversation...

jiz..

  • 0
Posted (edited)

...

 

Got nothing related, the only point is it needs to be .close() when it is used, otherwise you end with a ressource leak, as you open stuff but don't close it.

 

try-with-ressources writting style avoids to bother with .close() as it uses a Java7 feature. But you can use the old way

final URLConnection con = new URL(PowerPakConfig.VOTES_SITES_L2NETWORK_URL);
con.openConnection();
con.close();

it will do the same thing than

try (final URLConnection con = new URL(PowerPakConfig.VOTES_SITES_L2NETWORK_URL))
{
   con.openConnection();
}

Do it with every single ressource you open.

Edited by Tryskell
  • 0
Posted

Got nothing related, the only point is it needs to be .close() when it is used, otherwise you end with a ressource leak, as you open stuff but don't close it.

 

try-with-ressources writting style avoids to bother with .close() as it uses a Java7 feature. But you can use the old way

final URLConnection con = new URL(PowerPakConfig.VOTES_SITES_L2NETWORK_URL);
con.openConnection();
con.close();

it will do the same thing than

try (final URLConnection con = new URL(PowerPakConfig.VOTES_SITES_L2NETWORK_URL))
{
   con.openConnection();
}

Do it with every single ressource you open.

 

As i mentionted i gave him the idea. Now if he end up with a con leak no my problem. He is making a live server, he can at least check his source for similar. 

I won't sit and make him full code. I told him what's wrong with the current code.

  • 0
Posted (edited)

god damn mate ...take another look at ur post...are those words from an adult who is considered to be serious and also a helpful person??You gave those "TITLES" to urself and that's why im using them..Chill out and let the community be THE COMMUNITY..

GOOD NIGHT...there's no need to have another conversation...

jiz..

 

Gtfo, nobody in this community talk to me like that. You hurt my feelings, i would normally ask sweets to post another drama gif that represent my current damaged feelings but im sure he is crying in the kitchen right now eating cookies and getting weight. 

 

Ps. considered serious and helpful? As long as you lick us for help cause you're unable to do it on your own, we are adults, we are helpful and you're the kid who ask for the lolipop. Now go to your bed, you have school tomorrow.

I gave you fixed code. 

Edited by AccessDenied

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...