|
From: <th...@us...> - 2014-04-05 23:44:16
|
Revision: 23598
http://sourceforge.net/p/pcgen/code/23598
Author: thpr
Date: 2014-04-05 23:44:11 +0000 (Sat, 05 Apr 2014)
Log Message:
-----------
Catch some invalid PRExxx tokens
Fix: Stack dump due to bad PREPROFWITHSHIELD
Issue#: CODE-2545
Modified Paths:
--------------
Trunk/pcgen/code/src/java/pcgen/persistence/lst/prereq/AbstractPrerequisiteListParser.java
Trunk/pcgen/code/src/java/plugin/pretokens/parser/PreArmorProfParser.java
Trunk/pcgen/code/src/java/plugin/pretokens/parser/PreShieldProfParser.java
Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/prereq/AbstractPrerequisiteListParser.java
===================================================================
--- Trunk/pcgen/code/src/java/pcgen/persistence/lst/prereq/AbstractPrerequisiteListParser.java 2014-04-05 22:21:00 UTC (rev 23597)
+++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/prereq/AbstractPrerequisiteListParser.java 2014-04-05 23:44:11 UTC (rev 23598)
@@ -339,8 +339,17 @@
{
if (tokens[1].equals("ANY"))
{
- subreq.setOperand(tokens[1]);
- subreq.setKey(tokens[0]);
+ if (isAnyLegal())
+ {
+ subreq.setOperand(tokens[1]);
+ subreq.setKey(tokens[0]);
+ }
+ else
+ {
+ throw new PersistenceLayerException(
+ "Prerequisites of kind " + kind
+ + " do not support 'ANY'");
+ }
}
else
{
@@ -386,6 +395,11 @@
}
}
+ protected boolean isAnyLegal()
+ {
+ return true;
+ }
+
protected String getAssumedValue()
{
return null;
Modified: Trunk/pcgen/code/src/java/plugin/pretokens/parser/PreArmorProfParser.java
===================================================================
--- Trunk/pcgen/code/src/java/plugin/pretokens/parser/PreArmorProfParser.java 2014-04-05 22:21:00 UTC (rev 23597)
+++ Trunk/pcgen/code/src/java/plugin/pretokens/parser/PreArmorProfParser.java 2014-04-05 23:44:11 UTC (rev 23598)
@@ -48,4 +48,12 @@
{
return new String[]{"PROFWITHARMOR"};
}
+
+ @Override
+ protected boolean isAnyLegal()
+ {
+ return false;
+ }
+
+
}
Modified: Trunk/pcgen/code/src/java/plugin/pretokens/parser/PreShieldProfParser.java
===================================================================
--- Trunk/pcgen/code/src/java/plugin/pretokens/parser/PreShieldProfParser.java 2014-04-05 22:21:00 UTC (rev 23597)
+++ Trunk/pcgen/code/src/java/plugin/pretokens/parser/PreShieldProfParser.java 2014-04-05 23:44:11 UTC (rev 23598)
@@ -47,4 +47,10 @@
{
return new String[]{"PROFWITHSHIELD"};
}
+
+ @Override
+ protected boolean isAnyLegal()
+ {
+ return false;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|