Jump to content
  • 0

L2Character$Notifyaitask


Xerus

Question

 com.l2jesios.gameserver.model.actor.L2Character$NotifyAITask run

WARNING: 
java.lang.StackOverflowError
 at com.l2jesios.gameserver.ai.L2CharacterAI.maybeMoveToPawn(L2CharacterAI.java:934)
 at com.l2jesios.gameserver.ai.L2PlayerAI.thinkCast(L2PlayerAI.java:240)
 at com.l2jesios.gameserver.ai.L2PlayerAI.onEvtThink(L2PlayerAI.java:316)
 at com.l2jesios.gameserver.ai.L2CharacterAI.onEvtArrived(L2CharacterAI.java:673)
 at com.l2jesios.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:417)
 at com.l2jesios.gameserver.ai.AbstractAI.notifyEvent(AbstractAI.java:340)
 at com.l2jesios.gameserver.model.actor.L2Character.moveToLocation(L2Character.java:3893)
 at com.l2jesios.gameserver.model.actor.L2Character$AIAccessor.moveTo(L2Character.java:3039)
 at com.l2jesios.gameserver.ai.AbstractAI.moveTo(AbstractAI.java:582)
 at com.l2jesios.gameserver.ai.AbstractAI.moveToPawn(AbstractAI.java:538)
 at com.l2jesios.gameserver.ai.L2CharacterAI.maybeMoveToPawn(L2CharacterAI.java:948)
 
This error is flloding my gs very often and produce lag anyone know how to fix it? this is the line in L2CharacterAI
 
protected boolean maybeMoveToPawn(L2Object target, int offset)
{
if (target == null || offset < 0) // skill radius -1
return false;


offset += _actor.getTemplate().getCollisionRadius();   //this is the line 934
if (target instanceof L2Character)
offset += ((L2Character) target).getTemplate().getCollisionRadius();

 

Link to comment
Share on other sites

Recommended Posts

  • 0

There shouldn't be an issue there, obviously the original authors of this pack knew about this and added the catch (StackOverflowError). The only way to resolve this, is by checking all the calls of this method (infinite recursive calls are most likely the issue to this problem).

Link to comment
Share on other sites

  • 0

willing to help you but your irony is of limits, i hope nobody gives a fuck for your trash server and get always this error damn people these days....

wtf? my irony? i said nop the thing you posted doesnt work and yes i would fix it if i know where it came from. Where is my irony? just honest replies..

Edited by Xerus
Link to comment
Share on other sites

  • 0

yes of course

this irony

 

and NpcWalkers are the retarded l2j npc and generally offi ones that goes around town etc, i googled it and a random guy got that issue with stackoverflow he disabled NpcWalkers and it helped..

in order to test it disable them and check tommorow if error log still exists so how you test so fast? 

Link to comment
Share on other sites

  • 0

this irony

 

and NpcWalkers are the retarded l2j npc and generally offi ones that goes around town etc, i googled it and a random guy got that issue with stackoverflow he disabled NpcWalkers and it helped..

in order to test it disable them and check tommorow if error log still exists so how you test so fast? 

cause i already tested before and not working....

Link to comment
Share on other sites

  • 0

cause i already tested before and not working....

well obviously cause i saw only stackoverflow and i gaved the 1st answer of google.. you got stackOverFlow on other part of the code and it has also a movement issue i guess, not sure but as i searched more is a badly rework of l2j movement system rework and this issue exist in the most l2j packs so i guess a proper movement rework will fix all those stackoverflows or general-pools errors

Link to comment
Share on other sites

  • 0

well obviously cause i saw only stackoverflow and i gaved the 1st answer of google.. you got stackOverFlow on other part of the code and it has also a movement issue i guess, not sure but as i searched more is a badly rework of l2j movement system rework and this issue exist in the most l2j packs so i guess a proper movement rework will fix all those stackoverflows or general-pools errors

the flood is coming like every 30 minutes i tried everything..

Link to comment
Share on other sites

  • 0

I'm not familiar with esios pack, but seems to me you are getting an error, you don't necessarily need. Most likely this is due to L2J's outdated way of using catch(Throwable t), that's almost never wanted, you want to catch specific exceptions and not generally everything - that should be the case only to the very top of a thread.

 

Go to L2Character.java at NotifyAiTask class and replace 

catch (Throwable t)
{
_log.log(Level.WARNING, "", t);
}

with

catch (Exception e)
{
_log.log(Level.WARNING, "", e);
}
Link to comment
Share on other sites

  • 0

 

I'm not familiar with esios pack, but seems to me you are getting an error, you don't necessarily need. Most likely this is due to L2J's outdated way of using catch(Throwable t), that's almost never wanted, you want to catch specific exceptions and not generally everything - that should be the case only to the very top of a thread.

 

Go to L2Character.java at NotifyAiTask class and replace 

catch (Throwable t)
{
_log.log(Level.WARNING, "", t);
}

with

catch (Exception e)
{
_log.log(Level.WARNING, "", e);
}

 

At the moment its like this

public void run()
{
try
{
getAI().notifyEvent(_evt, null);
}
catch (StackOverflowError e) {
if(Config.DEBUG) // safer
_log.log(Level.WARNING, "", e);
}
catch (Throwable t)
{
_log.log(Level.WARNING, "", t);
}
}

but i think that stackoverflowerror is useless should i change to:

           public void run()
        {
            try
            {
                getAI().notifyEvent(_evt, null);
            }
            catch (Exception e)
            {
                _log.log(Level.WARNING, "NotifyAITask failed. " + e.getMessage() + " Actor " + L2Character.this, e);
            }
Link to comment
Share on other sites

  • 0

 

 

At the moment its like this

public void run()
{
try
{
getAI().notifyEvent(_evt, null);
}
catch (StackOverflowError e) {
if(Config.DEBUG) // safer
_log.log(Level.WARNING, "", e);
}
catch (Throwable t)
{
_log.log(Level.WARNING, "", t);
}
}

but i think that stackoverflowerror is useless should i change to:

           public void run()
        {
            try
            {
                getAI().notifyEvent(_evt, null);
            }
            catch (Exception e)
            {
                _log.log(Level.WARNING, "NotifyAITask failed. " + e.getMessage() + " Actor " + L2Character.this, e);
            }

 

Yes, you should change to that.

Edited by Versus
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.



  • Posts

    • I don't care what these random rats are typing to me. I will ruin their business for scamming other people's work. I'm very good at it, no matter what protection or obfuscation they add to their files. I will break them and share everything for free with the community that's what they deserve.
    • Look are you crazy or dumb? yes, im aware of this post, but i have NOTHING to do with it! unfortunately, when people sent me this post i even thought it was strange, and when i downloaded the server and the files really are without any protection, what do you want me to do about it? the reality is that im not even up to date on anything about Lineage anymore... im doing my things peacefully, bothering nobody.. He is talking about me, this guy is saying im the one who leaked or anyhting
    • Ps: I do know the guy, talked with him before, a few friends have bought stuff from him in the past and never had any issue. But hey, It happend so I'm posting it here. If he somehow answers back and sends the interface I will delete this post. A few days ago he made contact with me saying he had interface 474 code to sell. And since I also develop interfaces, I was interested in buying.   He told me the price, said he only accepted advcash/volet. I asked if he had any other crypto wallet or paypal email. He said no. After a while, he came back with a paypal email, in which we sent the money. But since its a new account, paypal blocked it for safekeeping. After this, he returned the money and we went to check on how to make a advcash/volet account. After a bit, we successfully created a "volet" account and transferred the money to him in 2 parts. 5 EUR first to check if he received the correct amount and later the 595 remaining to complete the 600 EUR for the asked price of the interface code and editors for it. His last message was on the 25th of September saying he wasn't home. Haven't heard from him since. I asked a friend of mine if he was legit and if he worked far from home and he did confirm this for me. But still. I would at least expect him to keep in touch with me to update his whereabouts and saying if he would need more time to arrive home. Here are the screens with the full discord conversation:    
  • Topics

×
×
  • Create New...