Ошибка Gameserver сервера
Сборка: Final, La2base, 1.0
Краткое изложение СУТИ проблемы: при открытии gameserver у меня ошибку сразу выводит
Вопрос: в чем причина и как исправить?
Мои соображения по этому поводу: у меня навикат Navicat_7.2.5, mysql-6.2, Java последние обновление. Вроде все нормуль.
А и еще все говорят что тут проблема =) причем это тут idfactory.ini:
Скриншоты ГеймСервера
[attachment=4176:123456.GIF]
idfactory.ini
# Настройки ID Factory
###################################
# Позволяет выбрать новые классы для хранения Мировых Объектов.
# Это может помочь серверам с большим количеством игроков отправлять
# сообщени об ошибках, связанных с L2ObjectHashMap и классами L2ObjectHashSet.
L2Map = WorldObjectMap
L2Set = WorldObjectSet
# Настройка сервера на использование класса IDFactory
# Варианты:
# Compaction (Первоначальный метод),
# BitSet (Метод без сжатия - по умолчанию),
# Stack (Другой метод без сжатия)
IDFactory = BitSet
# Проверка на плохие id в базе данных при старте сервера.
# При отключении время загрузки сильно уменьшится, но могут случиться проблемы.
# По умолчанию: True
BadIdChecking = True
Я юзал поиск нашел 3 темы но так и не решили эту проблему. Вот я еще раз хочу поднять темку может найдутся задроты :)
SnowLy: У меня так-же скажите плиз что делать
Как так вы новенький, то ограничимся устным предупреждением.
Ваше сообщение считается флудом, если у вас такая же проблема, то просто ждите ее решения или ищите его сами!
— рас!11рас!1
Люди ну давайт-те все в месте собиромся и подумает почему не идет
Вот я зашол в La2Base-Game.jar\net\sf\l2j\gameserver\idfactory
и там есть:
BitSetIDFactory$BitSetCapacityCheck.class
// 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
// 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
// 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
// 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
// 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
// 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;
}
Не упайте прекращайте это .
Gracia Final La2base 1.0
Вот лови протестишь отпиши правил на скорую руку , но у меня ошибок ноль выдало все норм и быстро грузит.
Просто замените.
_http://dump.ru/file/3413090




