public void error(RequestID requestID, CoreError error) {
        switch (error.getErrorType()) {
        case CoreError.ERROR_GENERAL:
            if (LOG.isError()) {
                LOG.error("CellIdUpdater.error()", 
                        "reqID: " + requestID +
                        ", error type: " + error.getErrorType() +
                        ", msg: " + error.getInternalMsg());
            }
            stopUpdates();
            break;
            
        case CoreError.ERROR_UNEXPECTED:
            UnexpectedError unexErr = (UnexpectedError) error;
            if (LOG.isError()) {
                LOG.error("CellIdUpdater.error()", 
                        "reqID: " + requestID +
                        ", error type: " + unexErr.getErrorType() +
                        ", ex: "+unexErr.getCause());
            }
            stopUpdates();
            break;
            
        case CoreError.ERROR_NETWORK:
            NetworkError netErr = (NetworkError) error;
            if (LOG.isError()) {
                LOG.error("CellIdUpdater.error()", 
                        "reqID: " + requestID +
                        ", error type: " + netErr.getErrorType() +
                        ", msg: "+netErr.getInternalMsg());
            }
            m_coreHandler.updateState(UpdatesHandler.PROVIDER_TEMPORARILY_UNAVAILABLE);
            //try again later
            break;
            
        case CoreError.ERROR_SERVER:
            ServerError srvErr = (ServerError) error;
            if (LOG.isError()) {
                LOG.error("CellIdUpdater.error()", 
                        "reqID: " + requestID +
                        ", error type: " + srvErr.getErrorType() +
                        ", msg: "+srvErr.getInternalMsg() +
                        ", code: "+srvErr.getStatusCode() +
                        ", URI: "+srvErr.getStatusUri());
            }
            m_coreHandler.updateState(UpdatesHandler.PROVIDER_TEMPORARILY_UNAVAILABLE);
            break;
        }
    }