Здравствуйте, гость ( Вход | Регистрация )

Навигация

Ссылки форума

Навигация по форуму

 
Closed TopicStart new topic
Ошибка Gameserver сервера
473360
сообщение 22.9.2009, 8:43
Сообщение #1



Новичок
Группа: Members
Сообщений: 22
Регистрация: 2.11.2008
Поблагодарили: 3 *


Сборка: Final, La2base, 1.0
Краткое изложение СУТИ проблемы: при открытии gameserver у меня ошибку сразу выводит
Вопрос: в чем причина и как исправить?
Мои соображения по этому поводу: у меня навикат Navicat_7.2.5, mysql-6.2, Java последние обновление. Вроде все нормуль.
А и еще все говорят что тут проблема =) причем это тут idfactory.ini:

Скриншоты ГеймСервера
Раскрывающийся текст

Прикрепленный файл  123456.GIF ( 16.51 килобайт ) Кол-во скачиваний: 54


idfactory.ini
Раскрывающийся текст
###################################
# Настройки ID Factory
###################################

# Позволяет выбрать новые классы для хранения Мировых Объектов.
# Это может помочь серверам с большим количеством игроков отправлять
# сообщени об ошибках, связанных с L2ObjectHashMap и классами L2ObjectHashSet.
L2Map = WorldObjectMap
L2Set = WorldObjectSet

# Настройка сервера на использование класса IDFactory
# Варианты:
# Compaction (Первоначальный метод),
# BitSet (Метод без сжатия - по умолчанию),
# Stack (Другой метод без сжатия)
IDFactory = BitSet

# Проверка на плохие id в базе данных при старте сервера.
# При отключении время загрузки сильно уменьшится, но могут случиться проблемы.
# По умолчанию: True
BadIdChecking = True


Я юзал поиск нашел 3 темы но так и не решили эту проблему. Вот я еще раз хочу поднять темку может найдутся задроты :)

Мне щас надо уходить в колледж буду где-то в 15:00 по московскому времени


Кто найдет ответ дам Спс :)
Go to the top of the page
 
+Quote Post
473360
сообщение 22.9.2009, 15:13
Сообщение #2



Новичок
Группа: Members
Сообщений: 22
Регистрация: 2.11.2008
Поблагодарили: 3 *


Up
Go to the top of the page
 
+Quote Post
SnowLy
сообщение 22.9.2009, 15:20
Сообщение #3



Новичок
Группа: Members
Сообщений: 33
Регистрация: 22.9.2009
Поблагодарили: 1 *


У меня так-же скажите плиз что делать
Go to the top of the page
 
+Quote Post
Somesay
сообщение 22.9.2009, 16:07
Сообщение #4



рас!11рас!1
Группа: Advanced Members
Сообщений: 307
Регистрация: 29.3.2008
Поблагодарили: 40 *


QUOTE (SnowLy @ 22.9.2009, 16:25) *
У меня так-же скажите плиз что делать


Как так вы новенький, то ограничимся устным предупреждением.
Ваше сообщение считается флудом, если у вас такая же проблема, то просто ждите ее решения или ищите его сами!
Go to the top of the page
 
+Quote Post
SnowLy
сообщение 23.9.2009, 14:14
Сообщение #5



Новичок
Группа: Members
Сообщений: 33
Регистрация: 22.9.2009
Поблагодарили: 1 *


Люди ну давайт-те все в месте собиромся и подумает почему не идет
Вот я зашол в La2Base-Game.jar\net\sf\l2j\gameserver\idfactory
и там есть: russian_roulette.gif
Раскрывающийся текст
BitSetIDFactory$BitSetCapacityCheck.class , BitSetIDFactory.class , CompactionIDFactory.class , IdFactory$1.class , IdFactory.class , StackIDFactory.class

BitSetIDFactory$BitSetCapacityCheck.class
Раскрывающийся текст

Код
// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov  Date: 18.09.2009 1:49:06
// Home Page: http://members.fortunecity.com/neshkov/dj.html  http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name:   BitSetIDFactory.java

package net.sf.l2j.gameserver.idfactory;


// Referenced classes of package net.sf.l2j.gameserver.idfactory:
//            BitSetIDFactory

protected class BitSetIDFactory$BitSetCapacityCheck
    implements Runnable
{

    public void run()
    {
        synchronized(BitSetIDFactory.this)
        {
            if(reachingBitSetCapacity())
                increaseBitSetCapacity();
        }
    }

    final BitSetIDFactory this$0;

    protected BitSetIDFactory$BitSetCapacityCheck()
    {
        this$0 = BitSetIDFactory.this;
        super();
    }
}

BitSetIDFactory.class
Раскрывающийся текст
Код
// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov  Date: 18.09.2009 2:11:06
// Home Page: http://members.fortunecity.com/neshkov/dj.html  http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name:   BitSetIDFactory.java

package net.sf.l2j.gameserver.idfactory;

import java.util.BitSet;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import net.sf.l2j.gameserver.ThreadPoolManager;
import net.sf.l2j.util.PrimeFinder;

// Referenced classes of package net.sf.l2j.gameserver.idfactory:
//            IdFactory

public class BitSetIDFactory extends IdFactory
{
    protected class BitSetCapacityCheck
        implements Runnable
    {

        public void run()
        {
            synchronized(BitSetIDFactory.this)
            {
                if(reachingBitSetCapacity())
                    increaseBitSetCapacity();
            }
        }

        final BitSetIDFactory this$0;

        protected BitSetCapacityCheck()
        {
            this$0 = BitSetIDFactory.this;
            super();
        }
    }


    protected BitSetIDFactory()
    {
        synchronized(net/sf/l2j/gameserver/idfactory/BitSetIDFactory)
        {
            ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new BitSetCapacityCheck(), 30000L, 30000L);
            initialize();
        }
        _log.info((new StringBuilder()).append("IDFactory: ").append(_freeIds.size()).append(" id's available.").toString());
    }

    public void initialize()
    {
        try
        {
            _freeIds = new BitSet(PrimeFinder.nextPrime(0x186a0));
            _freeIds.clear();
            _freeIdCount = new AtomicInteger(0x6fffffff);
            int arr$[] = extractUsedObjectIDTable();
            int len$ = arr$.length;
            for(int i$ = 0; i$ < len$; i$++)
            {
                int usedObjectId = arr$[i$];
                int objectID = usedObjectId - 0x10000000;
                if(objectID < 0)
                {
                    _log.warning((new StringBuilder()).append("Object ID ").append(usedObjectId).append(" in DB is less than minimum ID of ").append(0x10000000).toString());
                } else
                {
                    _freeIds.set(usedObjectId - 0x10000000);
                    _freeIdCount.decrementAndGet();
                }
            }

            _nextFreeId = new AtomicInteger(_freeIds.nextClearBit(0));
            _initialized = true;
        }
        catch(Exception e)
        {
            _initialized = false;
            _log.severe("BitSet ID Factory could not be initialized correctly");
            e.printStackTrace();
        }
    }

    public synchronized void releaseId(int objectID)
    {
        if(objectID - 0x10000000 > -1)
        {
            _freeIds.clear(objectID - 0x10000000);
            _freeIdCount.incrementAndGet();
        } else
        {
            _log.warning((new StringBuilder()).append("BitSet ID Factory: release objectID ").append(objectID).append(" failed (< ").append(0x10000000).append(")").toString());
        }
    }

    public synchronized int getNextId()
    {
        int newID = _nextFreeId.get();
        _freeIds.set(newID);
        _freeIdCount.decrementAndGet();
        int nextFree = _freeIds.nextClearBit(newID);
        if(nextFree < 0)
            nextFree = _freeIds.nextClearBit(0);
        if(nextFree < 0)
            if(_freeIds.size() < 0x6fffffff)
                increaseBitSetCapacity();
            else
                throw new NullPointerException("Ran out of valid Id's.");
        _nextFreeId.set(nextFree);
        return newID + 0x10000000;
    }

    public synchronized int size()
    {
        return _freeIdCount.get();
    }

    protected synchronized int usedIdCount()
    {
        return size() - 0x10000000;
    }

    protected synchronized boolean reachingBitSetCapacity()
    {
        return PrimeFinder.nextPrime((usedIdCount() * 11) / 10) > _freeIds.size();
    }

    protected synchronized void increaseBitSetCapacity()
    {
        BitSet newBitSet = new BitSet(PrimeFinder.nextPrime((usedIdCount() * 11) / 10));
        newBitSet.or(_freeIds);
        _freeIds = newBitSet;
    }

    private static Logger _log = Logger.getLogger(net/sf/l2j/gameserver/idfactory/BitSetIDFactory.getName());
    private BitSet _freeIds;
    private AtomicInteger _freeIdCount;
    private AtomicInteger _nextFreeId;

}


CompactionIDFactory.class
Раскрывающийся текст
Код
// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov  Date: 18.09.2009 2:14:12
// Home Page: http://members.fortunecity.com/neshkov/dj.html  http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name:   CompactionIDFactory.java

package net.sf.l2j.gameserver.idfactory;

import java.sql.*;
import java.util.logging.Logger;
import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;

// Referenced classes of package net.sf.l2j.gameserver.idfactory:
//            IdFactory

public class CompactionIDFactory extends IdFactory
{

    protected CompactionIDFactory()
    {
        Connection con;
        _curOID = 0x10000000;
        _freeSize = 0;
        con = null;
        con = L2DatabaseFactory.getInstance().getConnection();
        int tmp_obj_ids[] = extractUsedObjectIDTable();
        int N = tmp_obj_ids.length;
        for(int idx = 0; idx < N; idx++)
            N = insertUntil(tmp_obj_ids, idx, N, con);

        _curOID++;
        _log.config((new StringBuilder()).append("IdFactory: Next usable Object ID is: ").append(_curOID).toString());
        _initialized = true;
        try
        {
            con.close();
        }
        catch(Exception e) { }
        break MISSING_BLOCK_LABEL_172;
        Exception e1;
        e1;
        e1.printStackTrace();
        _log.severe((new StringBuilder()).append("ID Factory could not be initialized correctly:").append(e1).toString());
        try
        {
            con.close();
        }
        catch(Exception e) { }
        break MISSING_BLOCK_LABEL_172;
        Exception exception;
        exception;
        try
        {
            con.close();
        }
        catch(Exception e) { }
        throw exception;
    }

    private int insertUntil(int tmp_obj_ids[], int idx, int N, Connection con)
        throws SQLException
    {
        int id = tmp_obj_ids[idx];
        if(id == _curOID)
        {
            _curOID++;
            return N;
        }
        if(Config.BAD_ID_CHECKING)
        {
            String arr$[] = ID_CHECKS;
            int len$ = arr$.length;
            for(int i$ = 0; i$ < len$; i$++)
            {
                String check = arr$[i$];
                PreparedStatement ps = con.prepareStatement(check);
                ps.setInt(1, _curOID);
                ps.setInt(2, id);
                ResultSet rs = ps.executeQuery();
                if(rs.next())
                {
                    int badId = rs.getInt(1);
                    _log.severe((new StringBuilder()).append("Bad ID ").append(badId).append(" in DB found by: ").append(check).toString());
                    throw new RuntimeException();
                }
                rs.close();
                ps.close();
            }

        }
        int hole = id - _curOID;
        if(hole > N - idx)
            hole = N - idx;
        for(int i = 1; i <= hole; i++)
        {
            id = tmp_obj_ids[N - i];
            _log.info((new StringBuilder()).append("Compacting DB object ID=").append(id).append(" into ").append(_curOID).toString());
            String arr$[] = ID_UPDATES;
            int len$ = arr$.length;
            for(int i$ = 0; i$ < len$; i$++)
            {
                String update = arr$[i$];
                PreparedStatement ps = con.prepareStatement(update);
                ps.setInt(1, _curOID);
                ps.setInt(2, id);
                ps.execute();
                ps.close();
            }

            _curOID++;
        }

        if(hole < N - idx)
            _curOID++;
        return N - hole;
    }

    public synchronized int getNextId()
    {
        return _curOID++;
    }

    public synchronized void releaseId(int i)
    {
    }

    public int size()
    {
        return (_freeSize + 0x7fffffff) - 0x10000000;
    }

    private static Logger _log = Logger.getLogger(net/sf/l2j/gameserver/idfactory/CompactionIDFactory.getName());
    private int _curOID;
    private int _freeSize;

}

IdFactory$1.class
Раскрывающийся текст
Код
// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov  Date: 18.09.2009 2:22:03
// Home Page: http://members.fortunecity.com/neshkov/dj.html  http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name:   IdFactory.java

package net.sf.l2j.gameserver.idfactory;

import net.sf.l2j.Config;

// Referenced classes of package net.sf.l2j.gameserver.idfactory:
//            IdFactory

static class IdFactory$1
{

    static final int $SwitchMap$net$sf$l2j$Config$IdFactoryType[];

    static
    {
        $SwitchMap$net$sf$l2j$Config$IdFactoryType = new int[net.sf.l2j.toryType.values().length];
        try
        {
            $SwitchMap$net$sf$l2j$Config$IdFactoryType[net.sf.l2j.toryType.Compaction.ordinal()] = 1;
        }
        catch(NoSuchFieldError ex) { }
        try
        {
            $SwitchMap$net$sf$l2j$Config$IdFactoryType[net.sf.l2j.toryType.BitSet.ordinal()] = 2;
        }
        catch(NoSuchFieldError ex) { }
        try
        {
            $SwitchMap$net$sf$l2j$Config$IdFactoryType[net.sf.l2j.toryType.Stack.ordinal()] = 3;
        }
        catch(NoSuchFieldError ex) { }
    }
}

IdFactory.class
Раскрывающийся текст
Код
// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov  Date: 18.09.2009 2:23:29
// Home Page: http://members.fortunecity.com/neshkov/dj.html  http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name:   IdFactory.java

package net.sf.l2j.gameserver.idfactory;

import java.sql.*;
import java.util.logging.Logger;
import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;

// Referenced classes of package net.sf.l2j.gameserver.idfactory:
//            CompactionIDFactory, BitSetIDFactory, StackIDFactory

public abstract class IdFactory
{

    protected IdFactory()
    {
        setAllCharacterOffline();
        cleanUpDB();
    }

    private void setAllCharacterOffline()
    {
        Connection con = null;
        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            Statement statement = con.createStatement();
            statement.executeUpdate("UPDATE characters SET online = 0");
            statement.close();
            _log.info("Updated characters online status.");
        }
        catch(SQLException e)
        {
            try
            {
                con.close();
            }
            // Misplaced declaration of an exception variable
            catch(SQLException e) { }
            break MISSING_BLOCK_LABEL_80;
        }
        try
        {
            con.close();
        }
        catch(Exception e) { }
        break MISSING_BLOCK_LABEL_80;
        Exception exception;
        exception;
        try
        {
            con.close();
        }
        catch(Exception e) { }
        throw exception;
    }

    private void cleanUpDB()
    {
        Connection con = null;
        try
        {
            int cleanCount = 0;
            con = L2DatabaseFactory.getInstance().getConnection();
            Statement stmt = con.createStatement();
            cleanCount += stmt.executeUpdate("DELETE FROM character_friends WHERE character_friends.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_friends WHERE character_friends.friendId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_hennas WHERE character_hennas.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_macroses WHERE character_macroses.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_quests WHERE character_quests.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_recipebook WHERE character_recipebook.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_shortcuts WHERE character_shortcuts.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_skills WHERE character_skills.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_skills_save WHERE character_skills_save.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_subclasses WHERE character_subclasses.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_raid_points WHERE character_raid_points.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM items WHERE items.owner_id NOT IN (SELECT charId FROM characters) AND items.owner_id NOT IN (SELECT clan_id FROM clan_data);");
            cleanCount += stmt.executeUpdate("DELETE FROM item_attributes WHERE item_attributes.itemId NOT IN (SELECT object_id FROM items);");
            cleanCount += stmt.executeUpdate("DELETE FROM cursed_weapons WHERE cursed_weapons.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM heroes WHERE heroes.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM olympiad_nobles WHERE olympiad_nobles.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM olympiad_nobles_eom WHERE olympiad_nobles_eom.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM pets WHERE pets.item_obj_id NOT IN (SELECT object_id FROM items);");
            cleanCount += stmt.executeUpdate("DELETE FROM seven_signs WHERE seven_signs.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM merchant_lease WHERE merchant_lease.player_id NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_recommends WHERE character_recommends.charId NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM character_recommends WHERE character_recommends.target_id NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM clan_data WHERE clan_data.leader_id NOT IN (SELECT charId FROM characters);");
            cleanCount += stmt.executeUpdate("DELETE FROM clan_privs WHERE clan_privs.clan_id NOT IN (SELECT clan_id FROM clan_data);");
            cleanCount += stmt.executeUpdate("DELETE FROM clan_skills WHERE clan_skills.clan_id NOT IN (SELECT clan_id FROM clan_data);");
            cleanCount += stmt.executeUpdate("DELETE FROM clan_subpledges WHERE clan_subpledges.clan_id NOT IN (SELECT clan_id FROM clan_data);");
            cleanCount += stmt.executeUpdate("DELETE FROM clan_wars WHERE clan_wars.clan1 NOT IN (SELECT clan_id FROM clan_data);");
            cleanCount += stmt.executeUpdate("DELETE FROM clan_wars WHERE clan_wars.clan2 NOT IN (SELECT clan_id FROM clan_data);");
            cleanCount += stmt.executeUpdate("DELETE FROM clanhall_functions WHERE clanhall_functions.hall_id NOT IN (SELECT id FROM clanhall WHERE ownerId <> 0);");
            cleanCount += stmt.executeUpdate("DELETE FROM siege_clans WHERE siege_clans.clan_id NOT IN (SELECT clan_id FROM clan_data);");
            cleanCount += stmt.executeUpdate("DELETE FROM clan_notices WHERE clan_notices.clan_id NOT IN (SELECT clan_id FROM clan_data);");
            cleanCount += stmt.executeUpdate("DELETE FROM auction_bid WHERE auction_bid.bidderId NOT IN (SELECT clan_id FROM clan_data);");
            cleanCount += stmt.executeUpdate("DELETE FROM forums WHERE forums.forum_owner_id NOT IN (SELECT clan_id FROM clan_data) AND forums.forum_parent=2;");
            cleanCount += stmt.executeUpdate("DELETE FROM posts WHERE posts.post_forum_id NOT IN (SELECT forum_id FROM forums);");
            cleanCount += stmt.executeUpdate("DELETE FROM topic WHERE topic.topic_forum_id NOT IN (SELECT forum_id FROM forums);");
            stmt.executeUpdate("UPDATE clan_data SET auction_bid_at = 0 WHERE auction_bid_at NOT IN (SELECT auctionId FROM auction_bid);");
            stmt.executeUpdate("UPDATE clan_subpledges SET leader_id=0 WHERE clan_subpledges.leader_id NOT IN (SELECT charId FROM characters) AND leader_id > 0;");
            stmt.executeUpdate("UPDATE castle SET taxpercent=0 WHERE castle.id NOT IN (SELECT hasCastle FROM clan_data);");
            stmt.executeUpdate("UPDATE characters SET clanid=0, clan_privs=0, wantspeace=0, subpledge=0, lvl_joined_academy=0, apprentice=0, sponsor=0, clan_join_expiry_time=0, clan_create_expiry_time=0 WHERE characters.clanid > 0 AND characters.clanid NOT IN (SELECT clan_id FROM clan_data);");
            stmt.executeUpdate("UPDATE clanhall SET ownerId=0, paidUntil=0, paid=0 WHERE clanhall.ownerId NOT IN (SELECT clan_id FROM clan_data);");
            stmt.close();
            _log.info((new StringBuilder()).append("Cleaned ").append(cleanCount).append(" elements from database.").toString());
        }
        catch(SQLException e)
        {
            try
            {
                con.close();
            }
            // Misplaced declaration of an exception variable
            catch(SQLException e) { }
            break MISSING_BLOCK_LABEL_527;
        }
        try
        {
            con.close();
        }
        catch(Exception e) { }
        break MISSING_BLOCK_LABEL_527;
        Exception exception;
        exception;
        try
        {
            con.close();
        }
        catch(Exception e) { }
        throw exception;
    }

    protected int[] extractUsedObjectIDTable()
        throws SQLException
    {
        Connection con = null;
        int ai[];
        con = L2DatabaseFactory.getInstance().getConnection();
        Statement statement = con.createStatement();
        statement.executeUpdate("DROP TABLE IF EXISTS temporaryObjectTable");
        statement.executeUpdate("DELETE FROM itemsonground WHERE object_id IN (SELECT object_id FROM items)");
        statement.executeUpdate("CREATE TABLE temporaryObjectTable (object_id int NOT NULL PRIMARY KEY)");
        statement.executeUpdate("INSERT INTO temporaryObjectTable (object_id) SELECT charId FROM characters");
        statement.executeUpdate("INSERT INTO temporaryObjectTable (object_id) SELECT object_id FROM items");
        statement.executeUpdate("INSERT INTO temporaryObjectTable (object_id) SELECT clan_id FROM clan_data");
        statement.executeUpdate("INSERT INTO temporaryObjectTable (object_id) SELECT object_id FROM itemsonground");
        ResultSet result = statement.executeQuery("SELECT COUNT(object_id) FROM temporaryObjectTable");
        result.next();
        int size = result.getInt(1);
        result.close();
        int tmp_obj_ids[] = new int[size];
        result = statement.executeQuery("SELECT object_id FROM temporaryObjectTable ORDER BY object_id");
        int idx = 0;
        while(result.next())
            tmp_obj_ids[idx++] = result.getInt(1);
        result.close();
        statement.close();
        ai = tmp_obj_ids;
        try
        {
            con.close();
        }
        catch(Exception e) { }
        return ai;
        Exception exception;
        exception;
        try
        {
            con.close();
        }
        catch(Exception e) { }
        throw exception;
    }

    public boolean isInitialized()
    {
        return _initialized;
    }

    public static IdFactory getInstance()
    {
        return _instance;
    }

    public abstract int getNextId();

    public abstract void releaseId(int i);

    public abstract int size();

    private static Logger _log = Logger.getLogger(net/sf/l2j/gameserver/idfactory/IdFactory.getName());
    protected static final String ID_UPDATES[] = {
        "UPDATE items                 SET owner_id = ?    WHERE owner_id = ?", "UPDATE items                 SET object_id = ?   WHERE object_id = ?", "UPDATE character_quests      SET charId = ?     WHERE charId = ?", "UPDATE character_friends     SET charId = ?     WHERE charId = ?", "UPDATE character_friends     SET friendId = ?   WHERE friendId = ?", "UPDATE character_hennas      SET charId = ? WHERE charId = ?", "UPDATE character_recipebook  SET charId = ? WHERE charId = ?", "UPDATE character_shortcuts   SET charId = ? WHERE charId = ?", "UPDATE character_shortcuts   SET shortcut_id = ? WHERE shortcut_id = ? AND type = 1", "UPDATE character_macroses    SET charId = ? WHERE charId = ?",
        "UPDATE character_skills      SET charId = ? WHERE charId = ?", "UPDATE character_skills_save SET charId = ? WHERE charId = ?", "UPDATE character_subclasses  SET charId = ? WHERE charId = ?", "UPDATE characters            SET charId = ? WHERE charId = ?", "UPDATE characters            SET clanid = ?      WHERE clanid = ?", "UPDATE clan_data             SET clan_id = ?     WHERE clan_id = ?", "UPDATE siege_clans           SET clan_id = ?     WHERE clan_id = ?", "UPDATE clan_data             SET ally_id = ?     WHERE ally_id = ?", "UPDATE clan_data             SET leader_id = ?   WHERE leader_id = ?", "UPDATE pets                  SET item_obj_id = ? WHERE item_obj_id = ?",
        "UPDATE character_hennas     SET charId = ? WHERE charId = ?", "UPDATE itemsonground         SET object_id = ?   WHERE object_id = ?", "UPDATE auction_bid          SET bidderId = ?      WHERE bidderId = ?", "UPDATE auction_watch        SET charObjId = ?     WHERE charObjId = ?", "UPDATE clanhall             SET ownerId = ?       WHERE ownerId = ?"
    };
    protected static final String ID_CHECKS[] = {
        "SELECT owner_id    FROM items                 WHERE object_id >= ?   AND object_id < ?", "SELECT object_id   FROM items                 WHERE object_id >= ?   AND object_id < ?", "SELECT charId     FROM character_quests      WHERE charId >= ?     AND charId < ?", "SELECT charId     FROM character_friends     WHERE charId >= ?     AND charId < ?", "SELECT charId     FROM character_friends     WHERE friendId >= ?   AND friendId < ?", "SELECT charId     FROM character_hennas      WHERE charId >= ? AND charId < ?", "SELECT charId     FROM character_recipebook  WHERE charId >= ?     AND charId < ?", "SELECT charId     FROM character_shortcuts   WHERE charId >= ? AND charId < ?", "SELECT charId     FROM character_macroses    WHERE charId >= ? AND charId < ?", "SELECT charId     FROM character_skills      WHERE charId >= ? AND charId < ?",
        "SELECT charId     FROM character_skills_save WHERE charId >= ? AND charId < ?", "SELECT charId     FROM character_subclasses  WHERE charId >= ? AND charId < ?", "SELECT charId      FROM characters            WHERE charId >= ?      AND charId < ?", "SELECT clanid      FROM characters            WHERE clanid >= ?      AND clanid < ?", "SELECT clan_id     FROM clan_data             WHERE clan_id >= ?     AND clan_id < ?", "SELECT clan_id     FROM siege_clans           WHERE clan_id >= ?     AND clan_id < ?", "SELECT ally_id     FROM clan_data             WHERE ally_id >= ?     AND ally_id < ?", "SELECT leader_id   FROM clan_data             WHERE leader_id >= ?   AND leader_id < ?", "SELECT item_obj_id FROM pets                  WHERE item_obj_id >= ? AND item_obj_id < ?", "SELECT object_id   FROM itemsonground        WHERE object_id >= ?   AND object_id < ?"
    };
    protected boolean _initialized;
    public static final int FIRST_OID = 0x10000000;
    public static final int LAST_OID = 0x7fffffff;
    public static final int FREE_OBJECT_ID_SIZE = 0x6fffffff;
    protected static final IdFactory _instance;

    static
    {
        static class _cls1
        {

            static final int $SwitchMap$net$sf$l2j$Config$IdFactoryType[];

            static
            {
                $SwitchMap$net$sf$l2j$Config$IdFactoryType = new int[net.sf.l2j.Config.IdFactoryType.values().length];
                try
                {
                    $SwitchMap$net$sf$l2j$Config$IdFactoryType[net.sf.l2j.Config.IdFactoryType.Compaction.ordinal()] = 1;
                }
                catch(NoSuchFieldError ex) { }
                try
                {
                    $SwitchMap$net$sf$l2j$Config$IdFactoryType[net.sf.l2j.Config.IdFactoryType.BitSet.ordinal()] = 2;
                }
                catch(NoSuchFieldError ex) { }
                try
                {
                    $SwitchMap$net$sf$l2j$Config$IdFactoryType[net.sf.l2j.Config.IdFactoryType.Stack.ordinal()] = 3;
                }
                catch(NoSuchFieldError ex) { }
            }
        }

        switch(_cls1..SwitchMap.net.sf.l2j.Config.IdFactoryType[Config.IDFACTORY_TYPE.ordinal()])
        {
        case 1: // '\001'
            _instance = new CompactionIDFactory();
            break;

        case 2: // '\002'
            _instance = new BitSetIDFactory();
            break;

        case 3: // '\003'
            _instance = new StackIDFactory();
            break;

        default:
            _instance = null;
            break;
        }
    }
}

StackIDFactory.class
Раскрывающийся текст
Код
// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov  Date: 18.09.2009 2:25:47
// Home Page: http://members.fortunecity.com/neshkov/dj.html  http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name:   StackIDFactory.java

package net.sf.l2j.gameserver.idfactory;

import java.sql.*;
import java.util.Stack;
import java.util.logging.Logger;
import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;

// Referenced classes of package net.sf.l2j.gameserver.idfactory:
//            IdFactory

public class StackIDFactory extends IdFactory
{

    protected StackIDFactory()
    {
        Connection con;
        _freeOIDStack = new Stack();
        _curOID = 0x10000000;
        _tempOID = 0x10000000;
        con = null;
        con = L2DatabaseFactory.getInstance().getConnection();
        int tmp_obj_ids[] = extractUsedObjectIDTable();
        if(tmp_obj_ids.length > 0)
            _curOID = tmp_obj_ids[tmp_obj_ids.length - 1];
        _log.info((new StringBuilder()).append("Max Id = ").append(_curOID).toString());
        int N = tmp_obj_ids.length;
        for(int idx = 0; idx < N; idx++)
            N = insertUntil(tmp_obj_ids, idx, N, con);

        _curOID++;
        _log.config((new StringBuilder()).append("IdFactory: Next usable Object ID is: ").append(_curOID).toString());
        _initialized = true;
        try
        {
            con.close();
        }
        catch(Exception e) { }
        break MISSING_BLOCK_LABEL_227;
        Exception e1;
        e1;
        e1.printStackTrace();
        _log.severe((new StringBuilder()).append("ID Factory could not be initialized correctly:").append(e1).toString());
        try
        {
            con.close();
        }
        catch(Exception e) { }
        break MISSING_BLOCK_LABEL_227;
        Exception exception;
        exception;
        try
        {
            con.close();
        }
        catch(Exception e) { }
        throw exception;
    }

    private int insertUntil(int tmp_obj_ids[], int idx, int N, Connection con)
        throws SQLException
    {
        int id = tmp_obj_ids[idx];
        if(id == _tempOID)
        {
            _tempOID++;
            return N;
        }
        if(Config.BAD_ID_CHECKING)
        {
            String arr$[] = ID_CHECKS;
            int len$ = arr$.length;
            for(int i$ = 0; i$ < len$; i$++)
            {
                String check = arr$[i$];
                PreparedStatement ps = con.prepareStatement(check);
                ps.setInt(1, _tempOID);
                ps.setInt(2, id);
                ResultSet rs = ps.executeQuery();
                if(rs.next())
                {
                    int badId = rs.getInt(1);
                    _log.severe((new StringBuilder()).append("Bad ID ").append(badId).append(" in DB found by: ").append(check).toString());
                    throw new RuntimeException();
                }
                rs.close();
                ps.close();
            }

        }
        int hole = id - _tempOID;
        if(hole > N - idx)
            hole = N - idx;
        for(int i = 1; i <= hole; i++)
        {
            _freeOIDStack.push(Integer.valueOf(_tempOID));
            _tempOID++;
        }

        if(hole < N - idx)
            _tempOID++;
        return N - hole;
    }

    public static IdFactory getInstance()
    {
        return _instance;
    }

    public synchronized int getNextId()
    {
        int id;
        if(!_freeOIDStack.empty())
        {
            id = ((Integer)_freeOIDStack.pop()).intValue();
        } else
        {
            id = _curOID;
            _curOID = _curOID + 1;
        }
        return id;
    }

    public synchronized void releaseId(int id)
    {
        _freeOIDStack.push(Integer.valueOf(id));
    }

    public int size()
    {
        return (0x6fffffff - _curOID) + 0x10000000 + _freeOIDStack.size();
    }

    private static Logger _log = Logger.getLogger(net/sf/l2j/gameserver/idfactory/IdFactory.getName());
    private int _curOID;
    private int _tempOID;
    private Stack _freeOIDStack;

}
Go to the top of the page
 
+Quote Post
SnowLy
сообщение 25.9.2009, 15:38
Сообщение #6



Новичок
Группа: Members
Сообщений: 33
Регистрация: 22.9.2009
Поблагодарили: 1 *


Up
Go to the top of the page
 
+Quote Post
Evolution
сообщение 25.9.2009, 16:25
Сообщение #7



Уважаемый
Группа: La2base Clients
Сообщений: 364
Регистрация: 16.3.2009
Поблагодарили: 324 *


Не упайте прекращайте это .

Gracia Final La2base 1.0
Вот лови протестишь отпиши правил на скорую руку , но у меня ошибок ноль выдало все норм и быстро грузит.
Просто замените.

_http://dump.ru/file/3413090
Go to the top of the page
 
+Quote Post
SnowLy
сообщение 25.9.2009, 16:37
Сообщение #8



Новичок
Группа: Members
Сообщений: 33
Регистрация: 22.9.2009
Поблагодарили: 1 *


О спс тему можно офф
Go to the top of the page
 
+Quote Post

Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.6.2026, 2:21