91³Ô¹ÏÍø

Watch CBS News

Second-grader reportedly brings gun to Swansea school, 2 adults face charges

Two people are facing criminal charges after a report that a second-grade student may have brought a gun to a Swansea, Massachusetts elementary school.

Police were first notified about the incident at Mark G. Holye Elementary School on Monday. According to the Swansea Police Department, an anonymous tip alleged that the student brought the handgun to school on April 1.

On Tuesday, police executed a search warrant at a home on Market Street.

Guns seized from Swansea home

During the search, police found give guns. Four of the weapons were loaded, police said.

Swansea police seized three handguns, a 12-gauge shotgun, a .22-caliber rifle, and various types of ammunition.

According to police, no one who lived at the house had a valid Firearms Identification Card.

Charges were filed in Fall River District Court against Christopher Spangler, 51, and Heather Spangler, 43.

They were summonsed to be arraigned on April 22 on five counts of improper storage of a firearm near a minor and possession of a firearm without a Firearms Identification Card. They are also facing two counts of reckless endangerment of a child, and one count of possession of ammunition without a Firearms Identification Card.

Swansea police filed a report with the Department of Children and Families.

"This situation had the potential to end in a tragedy," Swansea Police Chief Mark Foley said in a statement. "Because of the work of our Swansea Police investigators, no one was hurt and several firearms that were possessed illegally and stored unsafely are now off the street."

School reviewing response

In a letter to families, Swansea Superintendent Scott Holcomb said that the school became aware of this incident over the weekend, but did not report it to police until Monday.

"We recognize that police should have been notified immediately once the report was received," he said. "The district will conduct a full review of the response to this situation to determine the procedures that should be strengthened and whether additional staff training or discipline is necessary."

Manny Miranda, a grandfather of a student at the school, said he was surprised by the breakdown in communication.

"I think there was a complete breakdown in communication. There's no reason for it," he said. "I see how these teachers are and the principal is very good. I've spoken to him several times and he seems to be right on it all the time and i just don't know how this got by anybody."

Deon Johnson, a parent at the school, added that he hopes more precautions are put into place as a result of the incident.

"Take more precaution, you know kids coming in with their bags and whatever, not to discriminate anyone, make anyone feel like criminals at all. But just be more aware of it because you don't want this to happen again," he said.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });