Search code examples
eclipsespring-mvceclipse-pluginm2eclipsests-springsourcetoolsuite

Cause of Error: Error occured processing XML 'Premature end of file.'


I have that small red cross next to the Project Folder as a result of some kind of glitch. The details in console is not very informative (see below). The logs are not very helpful either (see below). I am working with SpringSource Tool Suite (STS).

The error (red cross) seems to go away if I create a new Project then copying the contents from the old project to new. I have already did this several times, would like to find the root cause.

Description: Error occured processing XML 'Premature end of file.'. See Error Log for more details
On Element: servlet-context.xml
In folder: ProjectOne/src/main/webapp/WEB-INF/spring/appServlet

Error Log

1. Problems occurred when invoking code from plug-in: "org.springframework.ide.eclipse.core".

java.lang.NullPointerException
        at org.springframework.ide.eclipse.data.internal.validation.InvalidParameterTypeRule.validate(InvalidParameterTypeRule.java:127)
        at org.springframework.ide.eclipse.data.internal.validation.InvalidParameterTypeRule.validate(InvalidParameterTypeRule.java:1)
        at org.springframework.ide.eclipse.core.model.validation.AbstractValidator$ValidationVisitor.visit(AbstractValidator.java:269)
        at org.springframework.ide.eclipse.core.model.AbstractModelElement.accept(AbstractModelElement.java:131)
        at org.springframework.ide.eclipse.core.model.validation.AbstractValidator.validate(AbstractValidator.java:142)
        at org.springframework.ide.eclipse.core.model.validation.AbstractValidator.validate(AbstractValidator.java:104)
        at org.springframework.ide.eclipse.core.internal.project.SpringProjectContributionManager$7.execute(SpringProjectContributionManager.java:260)
        at org.springframework.ide.eclipse.core.internal.project.SpringProjectContributionManager$9.run(SpringProjectContributionManager.java:291)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.springframework.ide.eclipse.core.internal.project.SpringProjectContributionManager.execute(SpringProjectContributionManager.java:294)
        at org.springframework.ide.eclipse.core.internal.project.SpringProjectContributionManager.runValidator(SpringProjectContributionManager.java:257)
        at org.springframework.ide.eclipse.core.internal.project.SpringProjectContributionManager.build(SpringProjectContributionManager.java:131)
        at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:733)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
        at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263)
        at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:401)
        at org.eclipse.core.internal.resources.Project$1.run(Project.java:618)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
        at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597)
        at org.eclipse.core.internal.resources.Project.build(Project.java:114)
        at org.springsource.ide.eclipse.commons.core.SpringCoreUtils$1.run(SpringCoreUtils.java:793)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)    

2. Error creating Groovy language support
    java.lang.ClassNotFoundException: org.codehaus.jdt.groovy.integration.internal.GroovyLanguageSupport cannot be found by org.eclipse.jdt.core_3.9.50.xx-201405030018-e43j8
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
        at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
        at org.codehaus.jdt.groovy.integration.LanguageSupportFactory.tryInstantiate(LanguageSupportFactory.java:152)
        at org.codehaus.jdt.groovy.integration.LanguageSupportFactory.getLanguageSupport(LanguageSupportFactory.java:125)
        at org.codehaus.jdt.groovy.integration.LanguageSupportFactory.getParser(LanguageSupportFactory.java:54)
        at org.eclipse.jdt.internal.compiler.Compiler.initializeParser(Compiler.java:744)
        at org.eclipse.jdt.internal.compiler.Compiler.<init>(Compiler.java:298)
        at org.eclipse.jdt.internal.compiler.Compiler.<init>(Compiler.java:209)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.newCompiler(AbstractImageBuilder.java:562)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.<init>(AbstractImageBuilder.java:101)
        at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.<init>(BatchImageBuilder.java:34)
        at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:254)
        at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:174)
        at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:733)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
        at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263)
        at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:401)
        at org.eclipse.core.internal.resources.Project$1.run(Project.java:618)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
        at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597)
        at org.eclipse.core.internal.resources.Project.build(Project.java:114)
        at org.springsource.ide.eclipse.commons.core.SpringCoreUtils$1.run(SpringCoreUtils.java:793)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
3. Unable to read variable and containers file
        java.io.EOFException
            at java.io.DataInputStream.readInt(DataInputStream.java:392)
            at org.eclipse.wst.jsdt.internal.core.JavaModelManager$VariablesAndContainersLoadHelper.loadInt(JavaModelManager.java:2789)
            at org.eclipse.wst.jsdt.internal.core.JavaModelManager$VariablesAndContainersLoadHelper.loadVariables(JavaModelManager.java:2855)
            at org.eclipse.wst.jsdt.internal.core.JavaModelManager$VariablesAndContainersLoadHelper.load(JavaModelManager.java:2658)
            at org.eclipse.wst.jsdt.internal.core.JavaModelManager.loadVariablesAndContainers(JavaModelManager.java:2480)
            at org.eclipse.wst.jsdt.internal.core.JavaModelManager.startup(JavaModelManager.java:4151)
            at org.eclipse.wst.jsdt.core.JavaScriptCore.start(JavaScriptCore.java:4094)
            at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
            at java.security.AccessController.doPrivileged(Native Method)
            at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
            at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
            at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
            at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
            at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:478)
            at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
            at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:109)
            at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
            at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
            at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
            at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
            at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
            at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
            at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
            at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
            at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
            at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
            at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
            at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
            at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
            at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
            at org.eclipse.core.internal.events.BuildManager.instantiateBuilder(BuildManager.java:906)
            at org.eclipse.core.internal.events.BuildManager.initializeBuilder(BuildManager.java:859)
            at org.eclipse.core.internal.events.BuildManager.getBuilder(BuildManager.java:545)
            at org.eclipse.core.internal.events.BuildManager.getBuilder(BuildManager.java:574)
            at org.eclipse.core.internal.events.BuildManager.getRule(BuildManager.java:1124)
            at org.eclipse.core.internal.resources.Project$1.run(Project.java:612)
            at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
            at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597)
            at org.eclipse.core.internal.resources.Project.build(Project.java:114)
            at org.springsource.ide.eclipse.commons.core.SpringCoreUtils$1.run(SpringCoreUtils.java:793)
            at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
4. Unable to find Action Set: com.springsource.sts.roo.ui.actionSet
            An exception stack trace is not available.

Solution

  • It appears as if the error means that an xml file called 'servlet-context.xml' in this location 'ProjectOne/src/main/webapp/WEB-INF/spring/appServlet' is malformed.

    Discussion below however revealed that this error is very misleading in this case.

    The real problem appears to be hinted at by the 'EOF' exception trace in the error log. Looking at source code around that stacktrace reveals a file 'variablesAndContainers.dat' somewhere in the workspace metadata probably got corrupted.

    Rather than try to 'repair' the workspace it is probably the safest and easiest to create a new workspace and copy or import your project(s) into this clean new workspace.