Skip to content

Commit 41438c8

Browse files
committed
bug fix for arrayindex out of bounds error on fuseBond check
1 parent eb46412 commit 41438c8

File tree

3 files changed

+222
-3
lines changed

3 files changed

+222
-3
lines changed

base/standard/src/main/java/org/openscience/cdk/stereo/Stereocenters.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -696,8 +696,8 @@ private void visitPart(boolean[] visit, IAtom atom) {
696696
visit[container.indexOf(atom)] = true;
697697
for (IBond bond : container.getConnectedBondsList(atom)) {
698698
IAtom nbr = bond.getOther(atom);
699-
if (!visit[container.indexOf(nbr)])
700-
visitPart(visit, nbr);
699+
if (!visit[container.indexOf(nbr)])
700+
visitPart(visit, nbr);
701701
}
702702
}
703703

@@ -716,7 +716,7 @@ private boolean isFusedBond(IBond bond) {
716716
if (getRingDegree(container.indexOf(beg)) < 3 &&
717717
getRingDegree(container.indexOf(end)) < 3)
718718
return false;
719-
boolean[] avisit = new boolean[container.getBondCount()];
719+
boolean[] avisit = new boolean[container.getAtomCount()];
720720
avisit[container.indexOf(beg)] = true;
721721
avisit[container.indexOf(end)] = true;
722722
int count = 0;

storage/ctab/src/test/java/org/openscience/cdk/io/MDLV2000ReaderTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1877,4 +1877,13 @@ public void testBadAtomCoordinateFormat() throws Exception {
18771877
}
18781878
assertThat(sw.toString(), containsString("M SAL 1 2 2 3"));
18791879
}
1880+
1881+
@Test
1882+
public void checkFuseBondWithFewerBondsThanAtoms() throws IOException, CDKException {
1883+
try (InputStream in = getClass().getResourceAsStream("potentialLateFuse.mol");
1884+
MDLV2000Reader reader = new MDLV2000Reader(in)) {
1885+
IAtomContainer mol = reader.read(SilentChemObjectBuilder.getInstance().newAtomContainer());
1886+
assertThat(mol.getAtomCount(), is(108));
1887+
}
1888+
}
18801889
}
Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
2+
JSDraw209152015252D
3+
4+
108 96 0 0 1 0 0 V2000
5+
94.0867 -8.0787 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
6+
89.9041 -12.5498 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
7+
96.3943 -12.8383 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
8+
96.9712 -6.2037 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
9+
98.7020 -9.3767 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
10+
91.7790 -9.6652 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
11+
91.3463 -7.0691 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
12+
88.0291 -10.2421 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
13+
92.9328 -15.4343 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
14+
94.0867 -5.1941 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
15+
100.5769 -7.2133 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
16+
92.9328 -12.4056 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
17+
99.2788 -13.2708 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
18+
88.0291 -8.0787 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0
19+
78.9788 0.8785 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
20+
78.2208 -0.5062 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
21+
76.6682 -0.5062 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
22+
75.8733 0.8268 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
23+
75.9098 -1.8605 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
24+
74.3571 -1.8605 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
25+
73.5992 -3.2453 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
26+
72.0465 -3.2453 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
27+
71.2882 -4.6303 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
28+
69.7355 -4.6303 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
29+
68.9775 -6.0057 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
30+
67.4156 -6.0057 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
31+
66.6668 -7.3905 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
32+
67.4616 -8.7235 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
33+
65.1047 -7.3905 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
34+
64.3559 -8.7662 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
35+
65.1512 -10.1083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
36+
66.7037 -10.1083 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
37+
64.3929 -11.4624 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
38+
65.1879 -12.7957 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
39+
66.7407 -12.7957 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
40+
67.5448 -14.1075 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
41+
69.0977 -14.1075 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0
42+
66.7868 -15.4708 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
43+
67.6440 -11.2455 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
44+
64.4301 -14.1592 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
45+
65.2341 -15.4921 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
46+
62.8773 -14.1592 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
47+
62.1191 -15.5348 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
48+
60.5663 -15.5348 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
49+
59.7715 -14.2232 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
50+
58.2093 -14.2232 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0
51+
60.5294 -12.8689 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
52+
62.9140 -16.8678 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
53+
64.4759 -16.8678 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
54+
62.1653 -18.2312 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
55+
62.9601 -19.5640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
56+
62.2019 -20.9186 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
57+
60.6495 -20.9186 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
58+
62.9970 -22.2605 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
59+
62.2393 -23.6150 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
60+
63.0430 -24.9268 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
61+
64.5961 -24.9268 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
62+
65.3536 -23.5723 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
63+
60.6865 -23.6150 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
64+
59.8915 -22.3032 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
65+
59.9284 -24.9997 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
66+
58.3757 -24.9997 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
67+
57.6176 -26.3755 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
68+
58.4124 -27.7086 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
69+
56.0647 -26.3755 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
70+
55.3066 -27.7599 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
71+
53.7537 -27.7599 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
72+
52.9958 -29.1355 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
73+
52.9496 -26.4483 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
74+
56.1015 -29.0931 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
75+
57.6541 -29.0931 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
76+
55.3437 -30.4475 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
77+
56.1474 -31.7894 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
78+
57.7006 -31.7894 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
79+
58.4583 -30.4048 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
80+
58.4952 -33.1010 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
81+
55.3897 -33.1437 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
82+
53.8280 -33.1437 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
83+
56.1845 -34.4770 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
84+
57.7316 -34.6228 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
85+
58.0764 -36.1311 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
86+
56.7438 -36.9350 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
87+
55.5695 -35.9062 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
88+
54.0526 -36.2506 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
89+
53.0009 -35.1147 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
90+
53.5955 -37.7402 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
91+
52.0786 -38.7463 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
92+
51.8417 -41.2615 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
93+
53.3919 -42.1559 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
94+
53.3919 -43.9534 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
95+
51.8417 -44.8474 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
96+
49.9814 -44.0066 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
97+
49.9814 -41.9751 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
98+
48.4315 -44.9008 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
99+
51.8417 -46.6359 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
100+
53.3919 -47.5302 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
101+
54.9509 -46.6359 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
102+
54.9509 -44.8474 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
103+
50.5798 -46.1185 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
104+
54.9509 -41.2615 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
105+
50.2914 -40.3676 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
106+
50.5287 -37.8525 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
107+
55.5695 -37.7035 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
108+
63.9628 -22.2605 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
109+
62.7942 -8.7662 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
110+
61.9994 -7.4544 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
111+
60.4463 -7.4544 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0
112+
62.7570 -6.1003 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
113+
17 19 1 0 0 0 0
114+
19 20 1 0 0 0 0
115+
20 21 1 0 0 0 0
116+
21 22 1 0 0 0 0
117+
22 23 1 0 0 0 0
118+
23 24 1 0 0 0 0
119+
24 25 2 0 0 0 0
120+
25 26 1 0 0 0 0
121+
26 27 1 0 0 0 0
122+
27 28 2 0 0 0 0
123+
27 29 1 0 0 0 0
124+
29 30 1 0 0 0 0
125+
30 31 1 0 0 0 0
126+
31 32 2 0 0 0 0
127+
31 33 1 0 0 0 0
128+
33 34 1 0 0 0 0
129+
34 35 1 1 0 0 0
130+
35 36 1 0 0 0 0
131+
36 37 1 0 0 0 0
132+
36 38 2 0 0 0 0
133+
35 39 1 1 0 0 0
134+
34 40 1 0 0 0 0
135+
40 41 2 0 0 0 0
136+
40 42 1 0 0 0 0
137+
42 43 1 0 0 0 0
138+
43 44 1 6 0 0 0
139+
44 45 1 0 0 0 0
140+
45 46 1 0 0 0 0
141+
45 47 2 0 0 0 0
142+
43 48 1 0 0 0 0
143+
48 49 2 0 0 0 0
144+
48 50 1 0 0 0 0
145+
50 51 1 0 0 0 0
146+
51 52 1 0 0 0 0
147+
52 53 2 0 0 0 0
148+
52 54 1 0 0 0 0
149+
54 55 1 0 0 0 0
150+
55 56 1 1 0 0 0
151+
56 57 1 0 0 0 0
152+
57 58 2 0 0 0 0
153+
55 59 1 0 0 0 0
154+
59 60 2 0 0 0 0
155+
59 61 1 0 0 0 0
156+
61 62 1 0 0 0 0
157+
62 63 1 0 0 0 0
158+
63 64 2 0 0 0 0
159+
63 65 1 0 0 0 0
160+
65 66 1 0 0 0 0
161+
66 67 1 1 0 0 0
162+
67 68 1 6 0 0 0
163+
67 69 1 0 0 0 0
164+
66 70 1 0 0 0 0
165+
70 71 2 0 0 0 0
166+
70 72 1 0 0 0 0
167+
72 73 1 0 0 0 0
168+
73 74 1 1 0 0 0
169+
74 75 1 0 0 0 0
170+
74 76 1 0 0 0 0
171+
73 77 1 0 0 0 0
172+
77 78 2 0 0 0 0
173+
77 79 1 0 0 0 0
174+
79 80 1 0 0 0 0
175+
80 81 1 0 0 0 0
176+
81 82 1 0 0 0 0
177+
82 83 1 0 0 0 0
178+
79 83 1 0 0 0 0
179+
83 84 1 0 0 0 0
180+
84 85 2 0 0 0 0
181+
84 86 1 0 0 0 0
182+
86 87 1 0 0 0 0
183+
87 88 1 0 0 0 0
184+
88 89 1 0 0 0 0
185+
89 90 1 0 0 0 0
186+
90 91 1 0 0 0 0
187+
92 91 1 0 0 0 0
188+
93 92 1 0 0 0 0
189+
88 93 1 0 0 0 0
190+
92 94 2 0 0 0 0
191+
91 95 1 0 0 0 0
192+
95 96 1 0 0 0 0
193+
96 97 1 0 0 0 0
194+
98 97 1 0 0 0 0
195+
90 98 1 0 0 0 0
196+
91 99 1 1 0 0 0
197+
89100 2 0 0 0 0
198+
88101 1 6 0 0 0
199+
87102 1 6 0 0 0
200+
83103 1 6 0 0 0
201+
54104 1 0 0 0 0
202+
30105 1 6 0 0 0
203+
105106 1 0 0 0 0
204+
106107 1 0 0 0 0
205+
106108 2 0 0 0 0
206+
15 16 1 0 0 0 0
207+
16 17 1 0 0 0 0
208+
17 18 1 0 0 0 0
209+
M CHG 3 37 -1 46 -1 107 -1
210+
M END

0 commit comments

Comments
 (0)