Jump to content
  • 0

Need Help To Fix In Exception In Thread "aistpool-5".


Question

Posted

L2J aCis.

Error:

Exception in thread "AISTPool-5" java.lang.StackOverflowError
    at net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.startWaterTask(L2PcInstance.java:9109)
    at net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.checkWaterState(L2PcInstance.java:9122)
    at net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.revalidateZone(L2PcInstance.java:1540)
    at net.sf.l2j.gameserver.ai.L2CharacterAI.onEvtArrived(L2CharacterAI.java:626)
    at net.sf.l2j.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:373)
    at net.sf.l2j.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:296)

    at net.sf.l2j.gameserver.model.actor.L2Character.moveToLocation(L2Character.java:3586)
    at net.sf.l2j.gameserver.model.actor.L2Character$AIAccessor.moveTo(L2Character.java:2819)
    at net.sf.l2j.gameserver.ai.AbstractAI.moveTo(AbstractAI.java:538)
    at net.sf.l2j.gameserver.ai.AbstractAI.moveToPawn(AbstractAI.java:494)
    at net.sf.l2j.gameserver.ai.L2CharacterAI.maybeMoveToPawn(L2CharacterAI.java:877)
    at net.sf.l2j.gameserver.ai.L2PlayerAI.thinkCast(L2PlayerAI.java:235)
    at net.sf.l2j.gameserver.ai.L2PlayerAI.onEvtThink(L2PlayerAI.java:312)
    at net.sf.l2j.gameserver.ai.L2CharacterAI.onEvtArrived(L2CharacterAI.java:641)
    at net.sf.l2j.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:373)
    at net.sf.l2j.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:296)

    at net.sf.l2j.gameserver.model.actor.L2Character.moveToLocation(L2Character.java:3586)
    at net.sf.l2j.gameserver.model.actor.L2Character$AIAccessor.moveTo(L2Character.java:2819)
    at net.sf.l2j.gameserver.ai.AbstractAI.moveTo(AbstractAI.java:538)
    at net.sf.l2j.gameserver.ai.AbstractAI.moveToPawn(AbstractAI.java:494)
    at net.sf.l2j.gameserver.ai.L2CharacterAI.maybeMoveToPawn(L2CharacterAI.java:877)
    at net.sf.l2j.gameserver.ai.L2PlayerAI.thinkCast(L2PlayerAI.java:235)
    at net.sf.l2j.gameserver.ai.L2PlayerAI.onEvtThink(L2PlayerAI.java:312)
    at net.sf.l2j.gameserver.ai.L2CharacterAI.onEvtArrived(L2CharacterAI.java:641)
    at net.sf.l2j.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:373)
    at net.sf.l2j.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:296)

and 100 same error like last block

L2Character.java:3586 i marked it with plus "+"

....
if (offset > 0 || distance < 1)
		{
			// approximation for moving closer when z coordinates are different
			// TODO: handle Z axis movement better
			offset -= Math.abs(dz);
			if (offset < 5)
				offset = 5;
			
			// If no distance to go through, the movement is canceled
			if (distance < 1 || distance - offset <= 0)
			{
				if (Config.DEBUG)
					_log.fine("already in range, no movement needed.");
				
				// Notify the AI that the L2Character is arrived at destination
+				getAI().notifyEvent(CtrlEvent.EVT_ARRIVED);
				
				return;
			}
....

L2Character.java:2819

		public void moveTo(int x, int y, int z, int offset)
		{
+			moveToLocation(x, y, z, offset);
		}

AbstractAI.java:538

protected void moveTo(int x, int y, int z, int offset)
	{
		// Check if actor can move
		if (_actor.isMovementDisabled())
		{
			_actor.sendPacket(ActionFailed.STATIC_PACKET);
			return;
		}
		
		// Set AI movement data
		_clientMoving = true;
		
		if (_accessor == null)
			return;
		
		// Calculate movement data for a move to location action and add the actor to 
+		_accessor.moveTo(x, y, z, offset);
		
		if (!_actor.isMoving())
		{
			_actor.sendPacket(ActionFailed.STATIC_PACKET);
			return;
		}
		
		// Send a Server->Client packet CharMoveToLocation to the actor and all L2PcInstance in
		_actor.broadcastPacket(new MoveToLocation(_actor));
	}

AbstractAI.java:494

	protected void moveToPawn(L2Object pawn, int offset)
	{
		if (_clientMoving && _target == pawn && _actor.isOnGeodataPath() && GameTimeController.getGameTicks() < _moveToPawnTimeout)
			return;
		
		_target = pawn;
		if (_target == null)
			return;
		
		_moveToPawnTimeout = GameTimeController.getGameTicks() + 20;
		
+		moveTo(_target.getX(), _target.getY(), _target.getZ(), offset = offset < 10 ? 10 : offset);
		
	}

L2CharacterAI.java:877

protected boolean maybeMoveToPawn(L2Object target, int offset)
	{
		if (target == null || offset < 0) // skill radius -1
			return false;
		
		offset += _actor.getTemplate().getCollisionRadius();
		if (target instanceof L2Character)
			offset += ((L2Character) target).getTemplate().getCollisionRadius();
		
		if (!_actor.isInsideRadius(target, offset, false, false))
		{
			if (getFollowTarget() != null)
			{
				int foffset = offset + (((L2Character) target).isMoving() ? 100 : 0);
				
				// allow larger hit range when the target is moving (check is run only once per second)
				if (!_actor.isInsideRadius(target, foffset, false, false))
				{
					if (!_actor.isAttackingNow() || _actor instanceof L2Summon)
+						moveToPawn(target, offset);
					
					return true;
				}
				
				stopFollow();
				return false;
			}
			
			if (_actor.isMovementDisabled() && !(_actor instanceof L2Attackable))
			{
				if (getIntention() == CtrlIntention.ATTACK)
					setIntention(CtrlIntention.IDLE);
				
				return true;
			}
			
			// If not running, set the L2Character movement type to run and send Server->Client packet ChangeMoveType to all others L2PcInstance
			if (!(this instanceof L2PlayerAI) && !(this instanceof L2SummonAI))
				_actor.setRunning();
			
			if ((target instanceof L2Character) && !(target instanceof L2DoorInstance))
				startFollow((L2Character) target, offset);
			else
			{
				// Move the actor to Pawn server side AND client side by sending Server->Client packet MoveToPawn (broadcast)
				moveToPawn(target, offset);
			}
			return true;
		}
		
		stopFollow();
		return false;
	}

L2PlayerAI.java:235

	private void thinkCast()
	{
		L2Character target = (L2Character) getTarget();
		if (Config.DEBUG)
			_log.warning("L2PlayerAI: thinkCast -> Start");
		
		if (_skill.getTargetType() == SkillTargetType.TARGET_GROUND && _actor instanceof L2PcInstance)
		{
			if (maybeMoveToPosition(((L2PcInstance) _actor).getCurrentSkillWorldPosition(), _skill.getCastRange()))
			{
				_actor.setIsCastingNow(false);
				return;
			}
		}
		else
		{
			if (checkTargetLost(target))
			{
				// Notify the target
				if (_skill.isOffensive() && getTarget() != null)
					setTarget(null);
				
				_actor.setIsCastingNow(false);
				return;
			}
			
+			if (target != null && maybeMoveToPawn(target, _skill.getCastRange()))
			{
				_actor.setIsCastingNow(false);
				return;
			}
		}

L2PlayerAI.java:312

protected void onEvtThink()
	{
		// Check if the actor can't use skills and if a thinking action isn't already in progress
		if (_thinking && getIntention() != CtrlIntention.CAST) // casting must always continue
			return;
		
		// Start thinking action
		_thinking = true;
		
		try
		{
			// Manage AI thoughts
			switch (getIntention())
			{
				case ATTACK:
					thinkAttack();
					break;
				case CAST:
+					thinkCast();
					break;
				case PICK_UP:
					thinkPickUp();
					break;
				case INTERACT:
					thinkInteract();
					break;
			}
		}
		finally
		{
			// Stop thinking action
			_thinking = false;
		}
	}

L2CharacterAI.java:641

	protected void onEvtArrived()
	{
		_accessor.getActor().revalidateZone(true);
		
		if (_accessor.getActor().moveToNextRoutePoint())
			return;
		
		if (_accessor.getActor() instanceof L2Attackable)
			((L2Attackable) _accessor.getActor()).setIsReturningToSpawnPoint(false);
		
		clientStoppedMoving();
		
		// If the Intention was MOVE_TO, set the Intention to ACTIVE
		if (getIntention() == CtrlIntention.MOVE_TO)
			setIntention(CtrlIntention.ACTIVE);
		
		// Launch actions corresponding to the Event Think
+		onEvtThink();
	}

AbstractAI.java:373

...
			case EVT_ARRIVED:
				if (!_actor.isCastingNow() && !_actor.isCastingSimultaneouslyNow())
+					onEvtArrived();
				break;
...

AbstractAI.java:296

	public final void notifyEvent(CtrlEvent evt)
	{
+		notifyEvent(evt, null, null);
	}

i get this error not only with startWaterTask i get and with others, and same error 14000 lines... one time per day.

 

Maybe anyone know how to solve this problem?
 

Recommended Posts

  • 0
Posted (edited)

Yeah, that overflows the call stack. It's a very powerful techique, which can kill your app if not used correctly. :lol:

Edited by Tessa
  • 0
Posted
  On 9/22/2016 at 12:16 PM, Tessa said:

Yeah, that overflows the call stack. It's a very powerful techique, which can kill your app if not used correctly. :lol:

maybe you see it in code in me thread? :D

  • 0
Posted (edited)
  On 9/22/2016 at 5:14 PM, Tessa said:

No, I'm not familiar with aCis's design.

hmm i think java is java just changed function name and make little different from other packs :D

i will fixed it self if i know how to start this bug in game to see :D

Edited by wongerlt
  • 0
Posted
  On 9/22/2016 at 5:59 PM, Tessa said:

Well, you need to get familiar with the software you working on, before you try to fix something. :D

Bullshit. Tell this to ganja..  :happyforever:

  • 0
Posted
  On 9/22/2016 at 6:42 PM, SweeTs said:

Bullshit. Tell this to ganja..  :happyforever:

We can't compare with the master of all codes... :(

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.



  • Posts

    • Trust is built on experience. We share feedback from our users collected on external resources.     👉 Official website: https://vibesms.com 📢 Telegram channel: https://t.me/vibe_sms  
    • 我们已更新当前产品信息并重新设计了主题 — 欢迎访问,抢先了解我们项目的新产品与新服务! 相关链接: 数字商品商店: 点击 Telegram 机器人: 点击 SMM 面板: 点击 我们的项目正在积极寻找新的供应商和合作伙伴! — Snapchat 旧号和新号 | 含分数 (snapscores) | 地区: 欧洲/美国 | 通过邮箱/手机号完全访问 — Reddit 老账号,发帖和评论业力值从 100 到 100,000+ | 通过邮箱完全访问 — LinkedIn 老账号,含真实人脉 | 地区: 欧洲/美国 | 通过邮箱完全访问 + 有效的双重验证密码 — Instagram 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) — Facebook 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) | 含好友或无好友 | 地区: 欧洲/美国/亚洲 — Threads 账号 | 通过邮箱完全访问 (可能还绑定双重验证密码) — TikTok/Facebook/Google ADS 代理广告账号 请通过以下联系方式与我们联系 — 一起讨论合作条款! 我们也始终欢迎其他形式的合作提案。 联系方式与支持: Telegram: https://t.me/socnet_support Telegram 频道: https://t.me/accsforyou_shop WhatsApp: https://wa.me/79051904467 WhatsApp 频道: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n Discord: socnet_support Discord 服务器: https://discord.gg/y9AStFFsrh 邮箱: solomonbog@socnet.store 通过这些联系方式您还可以: — 获取批发采购咨询 — 建立合作伙伴关系 (现有合作伙伴: https://socnet.bgng.io/partners ) — 成为我们的供应商 SocNet — 数字商品与高级订阅商店 
    • 我们已更新当前产品信息并重新设计了主题 — 欢迎访问,抢先了解我们项目的新产品与新服务! 相关链接: 数字商品商店: 点击 Telegram 机器人: 点击 SMM 面板: 点击 我们的项目正在积极寻找新的供应商和合作伙伴! — Snapchat 旧号和新号 | 含分数 (snapscores) | 地区: 欧洲/美国 | 通过邮箱/手机号完全访问 — Reddit 老账号,发帖和评论业力值从 100 到 100,000+ | 通过邮箱完全访问 — LinkedIn 老账号,含真实人脉 | 地区: 欧洲/美国 | 通过邮箱完全访问 + 有效的双重验证密码 — Instagram 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) — Facebook 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) | 含好友或无好友 | 地区: 欧洲/美国/亚洲 — Threads 账号 | 通过邮箱完全访问 (可能还绑定双重验证密码) — TikTok/Facebook/Google ADS 代理广告账号 请通过以下联系方式与我们联系 — 一起讨论合作条款! 我们也始终欢迎其他形式的合作提案。 联系方式与支持: Telegram: https://t.me/socnet_support Telegram 频道: https://t.me/accsforyou_shop WhatsApp: https://wa.me/79051904467 WhatsApp 频道: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n Discord: socnet_support Discord 服务器: https://discord.gg/y9AStFFsrh 邮箱: solomonbog@socnet.store 通过这些联系方式您还可以: — 获取批发采购咨询 — 建立合作伙伴关系 (现有合作伙伴: https://socnet.bgng.io/partners ) — 成为我们的供应商 SocNet — 数字商品与高级订阅商店 
    • 我们已更新当前产品信息并重新设计了主题 — 欢迎访问,抢先了解我们项目的新产品与新服务! 相关链接: 数字商品商店: 点击 Telegram 机器人: 点击 SMM 面板: 点击 我们的项目正在积极寻找新的供应商和合作伙伴! — Snapchat 旧号和新号 | 含分数 (snapscores) | 地区: 欧洲/美国 | 通过邮箱/手机号完全访问 — Reddit 老账号,发帖和评论业力值从 100 到 100,000+ | 通过邮箱完全访问 — LinkedIn 老账号,含真实人脉 | 地区: 欧洲/美国 | 通过邮箱完全访问 + 有效的双重验证密码 — Instagram 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) — Facebook 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) | 含好友或无好友 | 地区: 欧洲/美国/亚洲 — Threads 账号 | 通过邮箱完全访问 (可能还绑定双重验证密码) — TikTok/Facebook/Google ADS 代理广告账号 请通过以下联系方式与我们联系 — 一起讨论合作条款! 我们也始终欢迎其他形式的合作提案。 联系方式与支持: Telegram: https://t.me/socnet_support Telegram 频道: https://t.me/accsforyou_shop WhatsApp: https://wa.me/79051904467 WhatsApp 频道: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n Discord: socnet_support Discord 服务器: https://discord.gg/y9AStFFsrh 邮箱: solomonbog@socnet.store 通过这些联系方式您还可以: — 获取批发采购咨询 — 建立合作伙伴关系 (现有合作伙伴: https://socnet.bgng.io/partners ) — 成为我们的供应商 SocNet — 数字商品与高级订阅商店 
    • 我们已更新当前产品信息并重新设计了主题 — 欢迎访问,抢先了解我们项目的新产品与新服务! 相关链接: 数字商品商店: 点击 Telegram 机器人: 点击 SMM 面板: 点击 我们的项目正在积极寻找新的供应商和合作伙伴! — Snapchat 旧号和新号 | 含分数 (snapscores) | 地区: 欧洲/美国 | 通过邮箱/手机号完全访问 — Reddit 老账号,发帖和评论业力值从 100 到 100,000+ | 通过邮箱完全访问 — LinkedIn 老账号,含真实人脉 | 地区: 欧洲/美国 | 通过邮箱完全访问 + 有效的双重验证密码 — Instagram 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) — Facebook 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) | 含好友或无好友 | 地区: 欧洲/美国/亚洲 — Threads 账号 | 通过邮箱完全访问 (可能还绑定双重验证密码) — TikTok/Facebook/Google ADS 代理广告账号 请通过以下联系方式与我们联系 — 一起讨论合作条款! 我们也始终欢迎其他形式的合作提案。 联系方式与支持: Telegram: https://t.me/socnet_support Telegram 频道: https://t.me/accsforyou_shop WhatsApp: https://wa.me/79051904467 WhatsApp 频道: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n Discord: socnet_support Discord 服务器: https://discord.gg/y9AStFFsrh 邮箱: solomonbog@socnet.store 通过这些联系方式您还可以: — 获取批发采购咨询 — 建立合作伙伴关系 (现有合作伙伴: https://socnet.bgng.io/partners ) — 成为我们的供应商 SocNet — 数字商品与高级订阅商店 
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock