[antlr-maven-plugin/f20] fix NPE during grammar processing, thanks to Michal Srb
Tom Callaway
spot at fedoraproject.org
Fri Oct 18 22:59:09 UTC 2013
commit 9dfdfbaa7de42a7c4e0521039d206a7299c49806
Author: Tom Callaway <spot at fedoraproject.org>
Date: Fri Oct 18 23:59:09 2013 +0100
fix NPE during grammar processing, thanks to Michal Srb
0001-MANTLR-34-Fix-NPE-when-building-Jenkins.patch | 72 ++++++++++++++++++++
antlr-maven-plugin.spec | 9 ++-
2 files changed, 80 insertions(+), 1 deletions(-)
---
diff --git a/0001-MANTLR-34-Fix-NPE-when-building-Jenkins.patch b/0001-MANTLR-34-Fix-NPE-when-building-Jenkins.patch
new file mode 100644
index 0000000..7ac7141
--- /dev/null
+++ b/0001-MANTLR-34-Fix-NPE-when-building-Jenkins.patch
@@ -0,0 +1,72 @@
+From 1305d8d7aa5f9724e28d54a112a524f9a2fb0af7 Mon Sep 17 00:00:00 2001
+From: Michal Srb <msrb at redhat.com>
+Date: Wed, 16 Oct 2013 14:29:21 +0200
+Subject: [PATCH] [MANTLR-34] Fix NPE when building Jenkins
+
+---
+ .../mojo/antlr/metadata/MetadataExtracter.java | 40 ++++++++++++----------
+ 1 file changed, 21 insertions(+), 19 deletions(-)
+
+diff --git a/src/main/java/org/codehaus/mojo/antlr/metadata/MetadataExtracter.java b/src/main/java/org/codehaus/mojo/antlr/metadata/MetadataExtracter.java
+index c54f301..8637dea 100644
+--- a/src/main/java/org/codehaus/mojo/antlr/metadata/MetadataExtracter.java
++++ b/src/main/java/org/codehaus/mojo/antlr/metadata/MetadataExtracter.java
+@@ -239,34 +239,36 @@ public class MetadataExtracter
+ Method getRHSMethod = helper.getAntlrOptionClass().getMethod( "getRHS", Helper.NO_ARG_SIGNATURE );
+ getRHSMethod.setAccessible( true );
+
+- Object importVocabOption = getElementMethod.invoke( options, new Object[] { "importVocab" } );
+- if ( importVocabOption != null )
+- {
+- String importVocab = (String) getRHSMethod.invoke( importVocabOption, Helper.NO_ARGS );
+- if ( importVocab != null )
++ if ( options != null ) {
++ Object importVocabOption = getElementMethod.invoke( options, new Object[] { "importVocab" } );
++ if ( importVocabOption != null )
+ {
+- importVocab = importVocab.trim();
+- if ( importVocab.endsWith( ";" ) )
++ String importVocab = (String) getRHSMethod.invoke( importVocabOption, Helper.NO_ARGS );
++ if ( importVocab != null )
+ {
+- importVocab = importVocab.substring( 0, importVocab.length() - 1 );
++ importVocab = importVocab.trim();
++ if ( importVocab.endsWith( ";" ) )
++ {
++ importVocab = importVocab.substring( 0, importVocab.length() - 1 );
++ }
++ grammar.setImportVocab( importVocab );
+ }
+- grammar.setImportVocab( importVocab );
+ }
+- }
+
+- Object exportVocabOption = getElementMethod.invoke( options, new Object[] { "exportVocab" } );
+- if ( exportVocabOption != null )
+- {
+- String exportVocab = (String) getRHSMethod.invoke( exportVocabOption, Helper.NO_ARGS );
+- if ( exportVocab != null )
++ Object exportVocabOption = getElementMethod.invoke( options, new Object[] { "exportVocab" } );
++ if ( exportVocabOption != null )
+ {
+- exportVocab = exportVocab.trim();
+- if ( exportVocab.endsWith( ";" ) )
++ String exportVocab = (String) getRHSMethod.invoke( exportVocabOption, Helper.NO_ARGS );
++ if ( exportVocab != null )
+ {
+- exportVocab = exportVocab.substring( 0, exportVocab.length() - 1 );
++ exportVocab = exportVocab.trim();
++ if ( exportVocab.endsWith( ";" ) )
++ {
++ exportVocab = exportVocab.substring( 0, exportVocab.length() - 1 );
++ }
+ }
++ grammar.setExportVocab( exportVocab );
+ }
+- grammar.setExportVocab( exportVocab );
+ }
+ }
+ catch ( Throwable t )
+--
+1.8.3.1
+
diff --git a/antlr-maven-plugin.spec b/antlr-maven-plugin.spec
index da5f6a7..83a0d92 100644
--- a/antlr-maven-plugin.spec
+++ b/antlr-maven-plugin.spec
@@ -1,6 +1,6 @@
Name: antlr-maven-plugin
Version: 2.2
-Release: 11%{?dist}
+Release: 12%{?dist}
Summary: Maven plugin that generates files based on grammar file(s)
License: ASL 2.0
URL: http://mojo.codehaus.org/antlr-maven-plugin/
@@ -12,6 +12,8 @@ Source0: http://repo1.maven.org/maven2/org/codehaus/mojo/%{name}/%{version}/%{n
Patch0: maven-antlr-plugin-2.2-modello-issue.patch
# siteRenderer.createSink doesn't exist anymore
Patch2: maven-antlr-plugin-2.1-sinkfix.patch
+# Fix grammar processing bug (bz 1020312)
+Patch3: 0001-MANTLR-34-Fix-NPE-when-building-Jenkins.patch
BuildArch: noarch
@@ -44,6 +46,7 @@ This package contains the API documentation for %{name}.
%setup -q
%patch0 -p1 -b .modello
%patch2 -p1 -b .sink
+%patch3 -p1 -b .fixnpe
# reporting eventually pulls in another antlr and we'd break with weird errors
%pom_xpath_inject "pom:dependency[pom:artifactId[text()='maven-reporting-impl']]/pom:exclusions" "
@@ -69,6 +72,10 @@ find -name '*.jar' -exec rm -f '{}' \;
%files javadoc -f .mfiles-javadoc
%changelog
+* Fri Oct 18 2013 Tom Callaway <spot at fedoraproject.org> - 2.2-12
+- Fix grammar processing bug (bz 1020312)
+ Thanks to Michal Srb
+
* Sat Aug 24 2013 Mat Booth <fedora at matbooth.co.uk> - 2.2-11
- Remove unneeded BR on maven2-common-poms
- Update for newer guidelines
More information about the scm-commits
mailing list