Updated to Xtext 2.4.2
Fixed Group scoping (again)
Fixed NPE during xtext reparse
diff --git a/com.google.eclipse.protobuf.feature/feature.xml b/com.google.eclipse.protobuf.feature/feature.xml
index 586a141..b0a3426 100644
--- a/com.google.eclipse.protobuf.feature/feature.xml
+++ b/com.google.eclipse.protobuf.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="com.google.eclipse.protobuf"
       label="%featureName"
-      version="1.4.1.qualifier"
+      version="1.4.2.qualifier"
       provider-name="%providerName">
 
    <description url="https://code.google.com/p/protobuf-dt/">
@@ -22,26 +22,25 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.xtext" version="2.3.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.xtext.util"/>
+      <import plugin="org.antlr.runtime"/>
+      <import plugin="org.apache.commons.logging"/>
+      <import plugin="org.apache.log4j"/>
       <import plugin="org.eclipse.emf.ecore"/>
       <import plugin="org.eclipse.emf.common"/>
-      <import plugin="org.antlr.runtime"/>
+      <import plugin="org.eclipse.core.resources"/>
       <import plugin="org.eclipse.core.runtime" version="3.7.0" match="greaterOrEqual"/>
-      <import plugin="org.apache.log4j"/>
-      <import plugin="org.apache.commons.logging"/>
-      <import plugin="org.eclipse.xtext.ui" version="2.3.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.xtext.util"/>
+      <import plugin="com.ibm.icu"/>
+      <import plugin="org.eclipse.compare.core" version="3.5.200" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.core.filesystem" version="1.3.100" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ui"/>
+      <import plugin="org.eclipse.ui.console" version="3.5.100" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ui.editors" version="3.7.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ui.ide" version="3.7.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.xtext.ui.shared"/>
-      <import plugin="org.eclipse.ui"/>
       <import plugin="org.eclipse.xtext.builder"/>
-      <import plugin="com.ibm.icu"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.core.filesystem" version="1.3.100" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.compare.core" version="3.5.200" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui.console" version="3.5.100" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor"/>
+      <import plugin="org.eclipse.xtext.ui" version="2.3.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.xtext.ui.shared"/>
+      <import plugin="org.eclipse.xtext" version="2.4.2" match="greaterOrEqual"/>
    </requires>
 
    <plugin
diff --git a/com.google.eclipse.protobuf.integration.test/META-INF/MANIFEST.MF b/com.google.eclipse.protobuf.integration.test/META-INF/MANIFEST.MF
index 5726298..308baf9 100644
--- a/com.google.eclipse.protobuf.integration.test/META-INF/MANIFEST.MF
+++ b/com.google.eclipse.protobuf.integration.test/META-INF/MANIFEST.MF
@@ -6,8 +6,6 @@
 Bundle-Vendor: Google Inc.
 Fragment-Host: com.google.eclipse.protobuf;bundle-version="1.0.9"
 Require-Bundle: org.junit;bundle-version="4.8.1",
- org.eclipse.xtext.junit;bundle-version="2.0.0",
- org.eclipse.xtext.junit4;bundle-version="2.0.0",
  org.mockito;bundle-version="1.8.5",
  org.eclipse.core.resources;bundle-version="3.7.100",
  org.hamcrest;bundle-version="1.1.0",
diff --git a/com.google.eclipse.protobuf.test/META-INF/MANIFEST.MF b/com.google.eclipse.protobuf.test/META-INF/MANIFEST.MF
index 4d98f42..c294255 100644
--- a/com.google.eclipse.protobuf.test/META-INF/MANIFEST.MF
+++ b/com.google.eclipse.protobuf.test/META-INF/MANIFEST.MF
@@ -6,8 +6,6 @@
 Bundle-Vendor: Google Inc.
 Fragment-Host: com.google.eclipse.protobuf;bundle-version="1.0.0"
 Require-Bundle: org.junit;bundle-version="4.8.1",
- org.eclipse.xtext.junit;bundle-version="2.0.0",
- org.eclipse.xtext.junit4;bundle-version="2.0.0",
  org.mockito;bundle-version="1.8.5",
  org.eclipse.core.resources;bundle-version="3.7.100",
  org.hamcrest;bundle-version="1.1.0",
diff --git a/com.google.eclipse.protobuf.ui.test/META-INF/MANIFEST.MF b/com.google.eclipse.protobuf.ui.test/META-INF/MANIFEST.MF
index 5af6725..f1b24bf 100644
--- a/com.google.eclipse.protobuf.ui.test/META-INF/MANIFEST.MF
+++ b/com.google.eclipse.protobuf.ui.test/META-INF/MANIFEST.MF
@@ -7,9 +7,6 @@
 Fragment-Host: com.google.eclipse.protobuf.ui;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.junit;bundle-version="4.8.1",
- org.eclipse.xtext.junit;bundle-version="2.0.0",
- org.eclipse.xtext.junit4;bundle-version="2.0.0",
- org.eclipse.xtext.ui.junit;bundle-version="2.0.0",
  org.mockito;bundle-version="1.8.5",
  org.hamcrest;bundle-version="1.1.0",
  org.hamcrest.library;bundle-version="1.1.0"
diff --git a/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF b/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF
index a1c9a2e..c71eae4 100644
--- a/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF
+++ b/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF
@@ -2,26 +2,25 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %Bundle-Name

 Bundle-Vendor: %Bundle-Vendor

-Bundle-Version: 1.4.1.qualifier

+Bundle-Version: 1.4.3.qualifier

 Bundle-SymbolicName: com.google.eclipse.protobuf.ui; singleton:=true

 Bundle-ActivationPolicy: lazy

 Require-Bundle: com.google.eclipse.protobuf;visibility:=reexport,

- org.eclipse.xtext.ui;bundle-version="2.3.0",

- org.eclipse.ui.editors;bundle-version="3.7.0",

- org.eclipse.ui.ide;bundle-version="3.7.0",

- org.eclipse.xtext.ui.shared,

- org.eclipse.ui,

- org.eclipse.xtext.builder,

- org.antlr.runtime,

- org.eclipse.core.runtime,

  com.ibm.icu,

- org.eclipse.core.resources,

- org.eclipse.core.filesystem,

- org.eclipse.compare.core,

- org.eclipse.ui.console

-Import-Package: org.apache.commons.logging,

+ org.antlr.runtime,

+ org.apache.commons.logging,

  org.apache.log4j,

- org.eclipse.ui.texteditor.spelling

+ org.eclipse.compare.core,

+ org.eclipse.core.filesystem,

+ org.eclipse.core.resources,

+ org.eclipse.core.runtime,

+ org.eclipse.ui,

+ org.eclipse.ui.console,

+ org.eclipse.ui.editors,

+ org.eclipse.ui.ide,

+ org.eclipse.xtext.builder,

+ org.eclipse.xtext.ui;bundle-version="[2.4.0,2.4.3)",

+ org.eclipse.xtext.ui.shared

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Export-Package: com.google.eclipse.protobuf.ui.contentassist,

  com.google.eclipse.protobuf.ui.contentassist.antlr,

diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/parser/PreferenceDrivenProtobufParser.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/parser/PreferenceDrivenProtobufParser.java
index e62781c..6238844 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/parser/PreferenceDrivenProtobufParser.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/parser/PreferenceDrivenProtobufParser.java
@@ -9,6 +9,7 @@
 package com.google.eclipse.protobuf.ui.parser;
 
 import org.antlr.runtime.CharStream;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.nodemodel.impl.NodeModelBuilder;
 import org.eclipse.xtext.parser.IParseResult;
 import org.eclipse.xtext.parser.ParseResult;
@@ -37,7 +38,12 @@
   }
 
   private boolean isNotProto2(IParseResult result) {
-    Protobuf root = (Protobuf) result.getRootASTElement();
-    return root == null || root.getSyntax() == null;
+    EObject rootObj = result.getRootASTElement();
+    if (rootObj instanceof Protobuf) {
+      Protobuf root = (Protobuf) result.getRootASTElement();
+      return root == null || root.getSyntax() == null;
+    }
+    
+    return false;
   }
 }
diff --git a/com.google.eclipse.protobuf/META-INF/MANIFEST.MF b/com.google.eclipse.protobuf/META-INF/MANIFEST.MF
index 3bad082..2476c62 100644
--- a/com.google.eclipse.protobuf/META-INF/MANIFEST.MF
+++ b/com.google.eclipse.protobuf/META-INF/MANIFEST.MF
@@ -3,23 +3,23 @@
 Eclipse-ExtensibleAPI: true

 Bundle-Name: %Bundle-Name

 Bundle-Vendor: %Bundle-Vendor

-Bundle-Version: 1.4.1.qualifier

+Bundle-Version: 1.4.3.qualifier

 Bundle-SymbolicName: com.google.eclipse.protobuf; singleton:=true

 Bundle-ActivationPolicy: lazy

-Require-Bundle: org.eclipse.xtext;bundle-version="2.3.0",

- org.eclipse.xtext.generator;resolution:=optional,

+Require-Bundle: com.ibm.icu;resolution:=optional,

+ org.antlr.runtime,

+ org.apache.commons.logging,

+ org.apache.log4j,

  org.eclipse.emf.codegen.ecore;resolution:=optional,

- org.eclipse.emf.mwe.utils;resolution:=optional,

- org.eclipse.emf.mwe2.launch;resolution:=optional,

- com.ibm.icu;resolution:=optional,

- org.eclipse.xtext.util,

  org.eclipse.emf.ecore,

  org.eclipse.emf.common,

- org.antlr.runtime,

- org.eclipse.core.runtime;bundle-version="3.7.0",

- org.eclipse.core.resources

-Import-Package: org.apache.log4j,

- org.apache.commons.logging

+ org.eclipse.emf.mwe.utils;resolution:=optional,

+ org.eclipse.emf.mwe2.launch;resolution:=optional,

+ org.eclipse.core.resources,

+ org.eclipse.core.runtime,

+ org.eclipse.xtext.util,

+ org.eclipse.xtext;bundle-version="2.4.0",

+ org.eclipse.xtext.generator;resolution:=optional

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

 Export-Package: com.google.eclipse.protobuf,

  com.google.eclipse.protobuf.conversion,

@@ -39,4 +39,3 @@
  com.google.eclipse.protobuf.services,

  com.google.eclipse.protobuf.util,

  com.google.eclipse.protobuf.validation

-

diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/OptionType.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/OptionType.java
index 2a2e2eb..4fcc355 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/OptionType.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/OptionType.java
@@ -71,11 +71,6 @@
   }
 
   static OptionType findOptionTypeForLevelOf(Object container) {
-    // Special handling for Groups: delegate to the parent
-    if (container instanceof Group) {
-      return findOptionTypeForLevelOf(((Group) container).eContainer());
-    }
-    
     for (Entry<Class<?>, OptionType> optionTypeByContainer : OPTION_TYPES_BY_CONTAINER.entrySet()) {
       if (optionTypeByContainer.getKey().isInstance(container)) {
         return optionTypeByContainer.getValue();