From: <ha...@us...> - 2011-04-28 15:06:04
|
Revision: 15409 http://jmol.svn.sourceforge.net/jmol/?rev=15409&view=rev Author: hansonr Date: 2011-04-28 15:05:57 +0000 (Thu, 28 Apr 2011) Log Message: ----------- version=12.0.42_dev # bug fix: data connect can cause null pointer exception if data statement has white-space-only lines Modified Paths: -------------- branches/v12_0/Jmol/src/org/jmol/modelset/ModelSet.java branches/v12_0/Jmol/src/org/jmol/util/Parser.java branches/v12_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v12_0/Jmol/src/org/jmol/modelset/ModelSet.java =================================================================== --- branches/v12_0/Jmol/src/org/jmol/modelset/ModelSet.java 2011-04-28 14:56:41 UTC (rev 15408) +++ branches/v12_0/Jmol/src/org/jmol/modelset/ModelSet.java 2011-04-28 15:05:57 UTC (rev 15409) @@ -828,6 +828,8 @@ BitSet bsDelete = new BitSet(); for (int i = 0; i < connections.length; i++) { float[] f = connections[i]; + if (f == null || f.length < 2) + continue; int index1 = (int) f[0]; int index2 = (int) f[1]; if (index1 < 0 || index2 < 0 || index1 >= atomCount || index2 >= atomCount) Modified: branches/v12_0/Jmol/src/org/jmol/util/Parser.java =================================================================== --- branches/v12_0/Jmol/src/org/jmol/util/Parser.java 2011-04-28 14:56:41 UTC (rev 15408) +++ branches/v12_0/Jmol/src/org/jmol/util/Parser.java 2011-04-28 15:05:57 UTC (rev 15409) @@ -101,9 +101,16 @@ return max + 1; } - public static float[][] parseFloatArray2d(String str) { + private static String fixDataString(String str) { str = str.replace(';', str.indexOf('\n') < 0 ? '\n' : ' '); str = TextFormat.trim(str, "\n \t"); + str = TextFormat.simpleReplace(str, "\n ", "\n"); + str = TextFormat.simpleReplace(str, "\n\n", "\n"); + return str; + } + + public static float[][] parseFloatArray2d(String str) { + str = fixDataString(str); int[] lines = markLines(str, '\n'); int nLines = lines.length; float[][] data = new float[nLines][]; @@ -115,8 +122,7 @@ } public static float[][][] parseFloatArray3d(String str) { - str = str.replace(';', str.indexOf('\n') < 0 ? '\n' : ' '); - str = TextFormat.trim(str, "\n \t"); + str = fixDataString(str); int[] lines = markLines(str, '\n'); int nLines = lines.length; String[] tokens = getTokens(str.substring(0, lines[0])); Modified: branches/v12_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v12_0/Jmol/src/org/jmol/viewer/Jmol.properties 2011-04-28 14:56:41 UTC (rev 15408) +++ branches/v12_0/Jmol/src/org/jmol/viewer/Jmol.properties 2011-04-28 15:05:57 UTC (rev 15409) @@ -4,6 +4,8 @@ version=12.0.42_dev +# bug fix: data connect can cause null pointer exception if data statement has white-space-only lines + # -------------------------------------------------------------- #version=12.0.41 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |