SomeBug?

Hi i have a problem , my game was working fine but some thing went wrong (may be with compiler)
I have a class and an interface , and there is an erro says that class does not override a method
The problem is it actually ovverides it ,and i have tried to change name of a method and of both class and interface - but error is allways the same , it does not even changes method name , what could i do ? here is error

//////
run:
dic 01, 2019 5:18:43 AM com.jme3.system.JmeDesktopSystem initialize
INFORMAZIONI: Running on jMonkeyEngine 3.2-stable

  • Branch: HEAD
  • Git Hash: f85624a
  • Build Date: 2018-03-06
    dic 01, 2019 5:18:44 AM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
    INFORMAZIONI: LWJGL 2.9.3 context running on thread jME3 Main
  • Graphics Adapter: aticfx64
  • Driver Version: 8.17.10.1669
  • Scaling Factor: 1
    dic 01, 2019 5:18:44 AM com.jme3.renderer.opengl.GLRenderer loadCapabilitiesCommon
    INFORMAZIONI: OpenGL Renderer Information
  • Vendor: ATI Technologies Inc.
  • Renderer: AMD Radeon ™ R9 200 Series
  • OpenGL Version: 4.6.13571 Compatibility Profile Context 19.9.3 26.20.13025.1004
  • GLSL Version: 4.60
  • Profile: Compatibility
    dic 01, 2019 5:18:44 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
    INFORMAZIONI: Audio Renderer Information
  • Device: OpenAL Soft
  • Vendor: OpenAL Community
  • Renderer: OpenAL Soft
  • Version: 1.1 ALSOFT 1.15.1
  • Supported channels: 64
  • ALC extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
  • AL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
    dic 01, 2019 5:18:44 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
    AVVERTENZA: Pausing audio device not supported.
    dic 01, 2019 5:18:44 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
    INFORMAZIONI: Audio effect extension version: 1.0
    dic 01, 2019 5:18:44 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
    INFORMAZIONI: Audio max auxiliary sends: 4
    dic 01, 2019 5:18:44 AM com.jme3.app.LegacyApplication handleError
    GRAVE: Uncaught exception thrown in Thread[jME3 Main,5,main]
    java.lang.ExceptionInInitializerError
    at NoblesOrigins.Classes.Virtual.General.VirtualWallet.(VirtualWallet.java:20)
    at NoblesOrigins.Classes.Inventory.PersonalInventory.(PersonalInventory.java:18)
    at NoblesOrigins.Classes.Riempietori.VirtualFillerOnStartUp.createPlayerVirtualLord(VirtualFillerOnStartUp.java:311)
    at NoblesOrigins.Classes.Riempietori.VirtualFillerOnStartUp.createPlayerClassAndAllBelow(VirtualFillerOnStartUp.java:249)
    at mygame.NoblesOriginsExe.simpleInitApp(NoblesOriginsExe.java:90)
    at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:220)
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:130)
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:211)
    at java.lang.Thread.run(Thread.java:748)
    Caused by: java.lang.RuntimeException: Uncompilable source code - NoblesOrigins.Classes.Equipment.WeaponComposingClasses.Weapon is not abstract and does not override abstract method getDammageToShield(int) in NoblesOrigins.Classes.Virtual.General.Feudal.CloseCombatWeaponInterface
    at NoblesOrigins.Classes.Inventory.InventoryObjects.InventoryObjectParent.(InventoryObjectParent.java:34)
    … 9 more

BUILD SUCCESSFUL (total time: 10 seconds)

//////

now here is the class

    public class Weapon extends InventoryObjectParent implements 
       CloseCombatWeaponInterface 
       {
       Node weaponBody;
 int lvl;
float lenght;
float dammageCutting=1;
float dammagePoke=1;
float dammageBlunt=1;
float speed;

public EquipmentGiver equipmentGiver;// who gave it

float durability;
float maxDurability;

int weaponType;//0 bastone , 1 oneHandedSword,2 1hPike,3 twoHPike,4 2HSword



///

public Node createAndAddBody(AssetManager assetManager){
    Node node= (Node)assetManager.loadModel("Models/Stuff/LVL0/untitled.j3o");
    if(weaponType==0){
            node=(Node)assetManager.loadModel("Models/Stuff/LVL0/untitled.j3o");
    }
    if(weaponType==1){
        if(getLvl()==3){
            node=(Node)assetManager.loadModel("");
        }
    }
    if(weaponType==2){
        if(getLvl()==1){
            node=(Node)assetManager.loadModel("");
        }
    }
    weaponBody=node;//adds to object
    return node;
}

///

////// interface

@Override
public int getDammageToShield(int attackEnergy) {
return (int) (attackEnergy*(dammageBlunt+dammageCutting+dammagePoke));
}



@Override
public int getType() {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

@Override
public int maxDuration() {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

@Override
public int remDuration() {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

@Override
public float getLenghtWeaponReach() {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

@Override
public int getBluntDammage() {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

@Override
public int cuttingDammage() {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

@Override
public int pokeDammage() {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

@Override
public float hitThatArmourAndRetDamTOHp(Armour armour, int powerHit, int attackType) {
   float dammageToHp=0;
   
   if(armour!=null){
       if(weaponType==1){//1h sword
           if(attackType==1){//center poke and cut
        dammageToHp+= ((powerHit/3*2)*getDammagePoke() - ((powerHit/3*2)*getDammagePoke()/100*armour.getArmourPoke()));
        dammageToHp+= ((powerHit/3*1)*getDammageCutting() - ((powerHit/3*2)*getDammageCutting()/100*armour.getArmourCutting()));
           
        dammageToHp=armour.plateGetHit(dammageToHp);
           }else{
               if(attackType==2||attackType==3||attackType==4||attackType==5){
        dammageToHp+= ((powerHit)*getDammageCutting() - ((powerHit)*getDammageCutting()/100*armour.getArmourCutting()));
           
        dammageToHp=armour.plateGetHit(dammageToHp);
               }
           }
       }else{
           if(weaponType==2||weaponType==0){//if 1hSpear or stick
               if(attackType==1){//center poke and cut
        dammageToHp+= ((powerHit)*getDammagePoke() - ((powerHit)*getDammagePoke()/100*armour.getArmourPoke()));
        
        
        dammageToHp=armour.plateGetHit(dammageToHp);
           }else{
               if(attackType==2||attackType==3||attackType==4||attackType==5){
        dammageToHp+= ((powerHit)*getDammageBlunt()- ((powerHit)*getDammageBlunt()/100*armour.getArmourBlunt()));
           
        dammageToHp=armour.plateGetHit(dammageToHp);
               }
           }
           }
       }
   }else{
       
   }
   if(dammageToHp<0){dammageToHp=0;}
   return dammageToHp;
}



@Override
public Node getNode(NodesGiver nodesGiver) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
/////////////////

public void makeWeapon1HSwordLVL1(){
    this.lvl = 5;
    this.lenght = 0.56f;
    this.dammageCutting = 10;
    this.speed = 0.1f;
    this.durability = 30;
    this.weaponType = 1;
}
public void makeWeapon1HSwordLVL5(){
    this.lvl = 5;
    this.lenght = 0.56f;
    this.dammageCutting = 10;
    this.speed = 0.1f;
    this.durability = 30;
    this.weaponType = 1;
}

public void makeWeapon1HSpearLVL5(){
    this.lvl = 5;
    this.lenght = 0.80f;
    this.dammageCutting = 1;
    this.dammagePoke=10;
    this.speed = 0.1f;
    this.durability = 30;
    this.weaponType = 1;
}

@Override
public Node getNodeBody(NodesGiver nodesGiver) {
    setBodyString(getBodyString());
    return super.getNodeBody(nodesGiver); Tools | Templates.
}
String getRightString(){
    if(weaponType==1){
        return "Models/Stuff/LVL0/untitled.j3o";
    }else{
        return "Models/Stuff/LVL0/untitled.j3o";
    }
}



//////////////////////////////
public Weapon(int lvl,  float lenght, float dammageCutting,float dammagePoke,float dammageBlunt,
        float speed, float durability, int weaponType) {
    this.lvl = lvl;
    this.lenght = lenght;
    this.dammageCutting = dammageCutting;
    this.dammagePoke=dammagePoke;
    this.dammageBlunt=dammageBlunt;
    this.speed = speed;
    this.durability = durability;
    this.weaponType = weaponType;
}

and here is interface

   public interface CloseCombatWeaponInterface {
int getType();
int getWeight();

int maxDuration();
int remDuration();

float getLenghtWeaponReach();//

int getBluntDammage();

int cuttingDammage();

int pokeDammage();

int getDammageToShield(int attackEnergy);

Node getNode(NodesGiver nodesGiver);

public float hitThatArmourAndRetDamTOHp(Armour armour,int powerHit,int attackType);

}

If you are running in the SDK, turn off the “Compile on save” option. The incremental compiler is super buggy.