Buggy code:
private static final HashMap < String , ArrayList < String > > allPortalsNet = new HashMap < String , ArrayList < String > > ( ) ; private static final HashMap < String , HashMap < String , Portal > > lookupNamesNet = new HashMap < String , HashMap < String , Portal > > ( ) ; private Blox topLeft ; private int modX ; private int modZ ; private float rotX ; private SignPost id ; private Blox button ; private Blox [ ] frame ; private Blox [ ] entrances ; private String name ; private String destination ; private String lastDest = "" ; private String network ; private Gate gate ; private String owner = "" ; private World world ; private boolean verified ; private boolean fixed ; private boolean hidden = false ; private boolean alwaysOn = false ; private boolean priv = false ; private boolean free = false ; private boolean backwards = false ; private boolean show = false ; private Player player ; private Player activePlayer ; private ArrayList < String > destinations = new ArrayList < String > ( ) ; private boolean isOpen = false ; private long openTime ; private Portal ( Blox topLeft , int modX , int modZ , float rotX , SignPost id , Blox button , String dest , String name , boolean verified , String network , Gate gate , String owner , boolean hidden , boolean alwaysOn , boolean priv , boolean free , boolean backwards , boolean show ) { } public boolean isOpen ( ) { } public boolean isAlwaysOn ( ) { } public boolean isHidden ( ) { } public boolean isPrivate ( ) { } public boolean isFree ( ) { } public boolean isBackwards ( ) { } public boolean isShown ( ) { } public float getRotation ( ) { } public String getName ( ) { } public void setName ( String name ) { } public Portal getDestination ( ) { } public void setDestination ( Portal destination ) { } public void setDestination ( String destination ) { } public String getDestinationName ( ) { } public Gate getGate ( ) { } public String getOwner ( ) { } public Blox [ ] getEntrances ( ) { } public Blox [ ] getFrame ( ) { } public World getWorld ( ) { } public boolean open ( boolean force ) { } public boolean open ( Player openFor , boolean force ) { } public void close ( boolean force ) { } public boolean isOpenFor ( Player player ) { } public boolean isFixed ( ) { } public boolean isPowered ( ) { } public void teleport ( Player player , Portal origin , PlayerMoveEvent event ) { } public void teleport ( final Vehicle vehicle ) { } public Location getExit ( Location traveller ) { } public boolean isChunkLoaded ( ) { } public void loadChunk ( ) { } public boolean isVerified ( ) { } public boolean wasVerified ( ) { } public boolean checkIntegrity ( ) { } public void activate ( Player player ) { StargateActivateEvent event = new StargateActivateEvent ( this ) ; server . getPluginManager ( ) . callEvent ( event ) ; if ( event . isCancelled ( ) ) return ; destinations . clear ( ) ; destination = "" ; activeList . add ( this ) ; activePlayer = player ; String network = getNetwork ( ) ; for ( String dest : Portal . allPortalsNet . get ( network . toLowerCase ( ) ) ) { Portal portal = Portal . getByName ( dest , network ) ; if ( ( portal . isAlwaysOn ( ) ) && ( ! ( portal . isShown ( ) ) ) ) continue ; if ( ! ( Stargate . canAccessWorld ( player , portal . getWorld ( ) . getName ( ) ) ) ) continue ; if ( dest . equalsIgnoreCase ( getName ( ) ) ) continue ; if ( ( portal . isFixed ( ) ) && ( ! ( portal . getDestinationName ( ) . equalsIgnoreCase ( getName ( ) ) ) ) ) continue ; if ( Stargate . canSee ( player , portal ) ) { destinations . add ( portal . getName ( ) ) ; } } <START_BUG> if ( ( Stargate . destMemory ) && ( destinations . contains ( lastDest ) ) ) { <END_BUG> destination = lastDest ; } drawSign ( ) ; } public void deactivate ( ) { } public boolean isActive ( ) { } public Player getActivePlayer ( ) { } public String getNetwork ( ) { } public long getOpenTime ( ) { } public void cycleDestination ( Player player ) { } public void cycleDestination ( Player player , int dir ) { } public final void drawSign ( ) { } public void unregister ( boolean removeAll ) { } private Blox getBlockAt ( RelativeBlockVector vector ) { } private void register ( ) { } public static Portal createPortal ( SignChangeEvent event , Player player ) { } public static Portal getByName ( String name , String network ) { } public static Portal getByEntrance ( Location location ) { } public static Portal getByEntrance ( Block block ) { } public static Portal getByBlock ( Block block ) { } public static void saveAllGates ( World world ) { } public static void clearGates ( ) { } public static void loadAllGates ( World world ) { } public static void closeAllGates ( ) { } public static String filterName ( String input ) { } @ Override public String toString ( ) { } @ Override public int hashCode ( ) { } @ Override public boolean equals ( Object obj ) { } }

Fix:
if ( ( ( Stargate . destMemory ) && ( ! ( lastDest . isEmpty ( ) ) ) ) && ( destinations . contains ( lastDest ) ) ) {