Error de mil millones en Java: seguridad con JSpecify y NullAway

Reduce NullPointerException con JSpecify, NullAway y @NullMarked; usa análisis estático para APIs seguras y fiables. Descubre cómo en Q2BSTUDIO.

27 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

NullPointerException sigue siendo uno de los errores más comunes en Java y su impacto puede ser enorme tanto en tiempo de desarrollo como en costes operativos. El creador del concepto de referencia nula reconoció décadas atrás que introducir la referencia nula fue un error de gran magnitud, y la comunidad ha buscado formas prácticas de reducir ese riesgo desde entonces.

El problema básico es que la nulabilidad en Java es implícita. Sin anotaciones claras o documentación inequívoca, nadie puede saber con seguridad si un método puede devolver un valor nulo. Ese desconocimiento provoca NullPointerException en tiempo de ejecución cuando, por ejemplo, se asume que una cadena devuelta por una API siempre existe y se llama a su método length sin comprobar si es nula.

JSpecify aparece como un estándar moderno para declarar la nulabilidad de forma explícita y consistente. No es solo un conjunto de anotaciones, sino una especificación que permite a IDEs y analizadores estáticos comportarse de manera uniforme. JSpecify define tres estados principales para la nulabilidad: Unspecified que es el estado por defecto en Java donde no se especifica si un valor puede ser nulo; Nullable indicado con la anotación @Nullable para valores que pueden ser nulos; y Non-null indicado con @NonNull para valores que no deben ser nulos.

Para evitar anotar cada parámetro y cada retorno del código, JSpecify incluye la anotación @NullMarked que se puede aplicar a nivel de paquete. Al colocar @NullMarked en package-info.java se establece que, por defecto, los tipos del paquete son no nulos salvo que se indique @Nullable de forma explícita. Esto mejora la legibilidad y reduce el ruido en APIs donde la mayoría de los valores son no nulos.

Las advertencias del IDE ayudan mucho, pero no impiden que se introduzca código inseguro en el repositorio. Para asegurar que las reglas de nulabilidad se cumplan en la construcción del proyecto, herramientas como NullAway integradas con Error Prone permiten hacer cumplir las anotaciones en tiempo de compilación y fallar el build si se detectan violaciones. Con esta combinación de anotaciones JSpecify y análisis estático se logra detectar y corregir posibles NullPointerException antes de que lleguen a producción.

El ecosistema ya está adoptando estas prácticas. Por ejemplo, las versiones recientes de frameworks populares han migrado sus APIs para exponer anotaciones de nulabilidad, lo que permite a los desarrolladores recibir avisos directamente en el IDE cuando un valor puede ser nulo. A largo plazo se contempla que el propio lenguaje Java incluya sintaxis de nulabilidad en propuestas como las asociadas a Project Valhalla, aunque por compatibilidad hacia atrás los tipos no anotados seguirán siendo probablemente Unspecified durante bastante tiempo.

En Q2BSTUDIO aplicamos estas buenas prácticas en nuestros desarrollos para ofrecer software más robusto y fiable. Como empresa especializada en desarrollo de software a medida y aplicaciones a medida combinamos la disciplina en el diseño de APIs con análisis estático y pruebas automatizadas para minimizar errores como NullPointerException. Ofrecemos soluciones que integran inteligencia artificial, agentes IA y capacidades de automatización para empresas, así como servicios de ciberseguridad y pentesting que aseguran que las aplicaciones no solo funcionen correctamente sino que sean seguras.

Nuestros servicios cubren desde el desarrollo de aplicaciones y software a medida hasta despliegues en la nube con servicios cloud aws y azure y proyectos de inteligencia de negocio y power bi. Si buscas crear soluciones a medida que aprovechen la inteligencia artificial de forma segura, puedes conocer cómo diseñamos y entregamos aplicaciones a medida y software a medida que incorporan control estricto de la nulabilidad y pruebas en pipeline. Para proyectos que requieren modelos de IA, agentes conversacionales o consultoría en ia para empresas descubre nuestras capacidades en inteligencia artificial.

Implementar JSpecify y NullAway es relativamente bajo coste en proyectos nuevos y totalmente viable de aplicar de forma incremental en código existente, paquete por paquete. Esto reduce el riesgo de introducción masiva de cambios y permite mejorar la estabilidad gradualmente sin paralizar la entrega.

Si tu objetivo es ofrecer software confiable, escalable y seguro, apuesta por prácticas que dejen clara la intención de la API y que eviten errores clásicos como NullPointerException. En Q2BSTUDIO combinamos experiencia en inteligencia artificial, servicios cloud aws y azure, servicios inteligencia de negocio, agentes IA y power bi con metodologías de calidad y ciberseguridad para entregar soluciones que funcionan en producción y resisten amenazas reales.

Contacta con nosotros para evaluar cómo mejorar la seguridad y la calidad de tu código mediante anotaciones, análisis estático y arquitecturas que aprovechen lo mejor del software a medida y la inteligencia artificial aplicada a tu negocio.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat