NullPointerException with Texlipse and Miktex 2.9

350 views Asked by At

When using Texlipse together with Miktex 2.9 on my Windows machine, the system throws a NullPointerExcpetion each time the document is compiled.

The problem disappeared after I have updated the Miktex 2.9 distribution using the Update manager. Hope this helps others who have the same problem.

Regards, Pwndrian

1

There are 1 answers

0
Clint Feher On BEST ANSWER

To me it happens too.

This is a workaround I did, however I think that it is not quite optimal solution. I saw that there is a bug opened http://sourceforge.net/tracker/?func=detail&aid=3306779&group_id=133306&atid=726818.

There is the class net.sourceforge.texlipse.builder.TExlipseBuilder, I made the following changes to overcome this problem(Please note the differences in both functions). The problem is that in TExlipsePlugin in the function getCurrentProject the actEditor is null since there is no active editor when importing projects or when pressing on clean while no editor is open.

@Override
protected IProject[] build(int kind, Map args, IProgressMonitor monitor)
        throws CoreException {      
    BuilderRegistry.clearConsole();
    IWorkbenchPage page = TexlipsePlugin.getCurrentWorkbenchPage();
    IEditorPart actEditor = null;
    if (page.isEditorAreaVisible()
         && page.getActiveEditor() != null) {
        actEditor = page.getActiveEditor();
    }
    if ( actEditor == null )
        return null;

    if (isUpToDate(getProject()))
        return null;

    Object s = TexlipseProperties.getProjectProperty(getProject(), TexlipseProperties.PARTIAL_BUILD_PROPERTY);
    if (s != null) {
        partialBuild(monitor);
    } else {
        buildFile(null, monitor);
    }

    return null;
}

/**
 * Clean the temporary files.
 * 
 * @see IncrementalProjectBuilder.clean
 */
@Override
protected void clean(IProgressMonitor monitor) throws CoreException {
    IProject project = getProject();
    BuilderRegistry.clearConsole();
    IWorkbenchPage page = TexlipsePlugin.getCurrentWorkbenchPage();
    IEditorPart actEditor = null;
    if (page.isEditorAreaVisible()
         && page.getActiveEditor() != null) {
        actEditor = page.getActiveEditor();
    }
    if ( actEditor == null )
        return;        

    // reset session variables
    TexlipseProperties.setSessionProperty(project, TexlipseProperties.SESSION_LATEX_RERUN, null);
    TexlipseProperties.setSessionProperty(project, TexlipseProperties.SESSION_BIBTEX_RERUN, null);
    TexlipseProperties.setSessionProperty(project, TexlipseProperties.BIBFILES_CHANGED, null);

    // check main file
    String mainFile = TexlipseProperties.getProjectProperty(project, TexlipseProperties.MAINFILE_PROPERTY);
    if (mainFile == null || mainFile.length() == 0) {
        // main tex file not set -> nothing builded -> nothing to clean
        return;
        }

    cleanTempDir(monitor, project);
    cleanOutput(monitor, project);

    monitor.subTask(TexlipsePlugin.getResourceString("builderSubTaskCleanMarkers"));

    this.deleteMarkers(project);
    project.refreshLocal(IProject.DEPTH_INFINITE, monitor);
    monitor.done();
}