Por favor, establezca un datasource
En la página donde el portal de datos abiertos del Gobierno Vasco cuenta sus orígenes, la frase del acuerdo de 2009 que lo fundó es un enlace. Quien lo pulsa no encuentra el acuerdo. Encuentra una disculpa, un número de trece cifras, un botón que dice «Mas Información ...» y, detrás del botón, una traza de Java. Así seguía el 23 de septiembre. Un renglón más abajo, otro enlace, con el título del acuerdo, lleva a un PDF, y ese sí se abre.
- Dominios
- opendata.euskadi.eus · www.euskadi.eus
- Guardado
- 08 SEP 2026
- Comprobado en vivo
- 14 SEP 2026
- Citas
- 12 en 2 ficheros guardados
- Lectura
- unos 4 min

La página «Sobre Open Data» tiene un apartado de orígenes, y los orígenes tienen fecha: el Consejo de Gobierno Vasco aprobó el 29 de diciembre de 2009 ordenar la puesta en marcha de un proyecto de apertura de datos públicos. La frase es un enlace. Apunta a una aplicación de acuerdos del Consejo, con la fecha en la propia dirección: fecha=20091229. Es el certificado de nacimiento del portal, y el portal lo enlaza para que cualquiera lo lea. Lo enlaza, de hecho, dos veces: debajo de la frase hay otro enlace, «Acuerdo del Consejo de Gobierno sobre Open Data Euskadi (pdf, 268 kb)».

- Copia
- archivo
- Guardado
- 8 sep 2026
- Peso
- 153,4 kB
- sha256
- 62693ed0cc50…
| 712 | </script> |
| 713 | |
| 714 | </head><body class="w79-sobreod"><!-- Google Tag Manager (noscript) --> |
| 715 | <noscript><iframe src=' |
| 716 | <!-- End Google Tag Manager (noscript) --> |
| 717 | <header><div id="pattern" class="vaA261F83B pattern"><div class="offcanvas-top"><div class="o-content"><div class="zutabeak"><div class=" |
| 718 | <article class="r01-information"> |
| 719 | <header class="r01-header"> |
| 720 | <h1 class="r01-h1">Open Data Euskadi</h1> |
| 721 | </header><div class="r01-editor"><p>El Gobierno Vasco se compromete a una efectiva <strong>apertura de los datos públicos</strong> que obran en su poder, entendiendo como públicos todos aquellos datos no sujetos a restricciones de privacidad, se… |
| 722 | <h2>Orígenes</h2> |
| 723 | …href="/ |
| 724 | <p class="acuerdo"> <a href="/ |
| 725 | <p>Unos meses después, en abril de 2010, el Gobierno Vasco publica Open Data Euskadi, el portal de datos abiertos del Gobierno Vasco y entes dependientes:</p> |
| 726 | <p><iframe width="560" height="314" title="Open Data Euskadi es la página web de datos abiertos del Gobierno Vasco. En este vídeo se explica qué información ofrece esta web: datos en formatos reutilizables, aplicaciones |
| 727 | creadas a partir de los datos, noticias, etc." allowfullscreen=" |
| 728 | <h2>Órgano responsable de Open Data Euskadi</h2> |
| 729 | <p>El <a title="El enlace se abrirá en una ventana nueva" href=" |
| 730 | <ul> |
| 731 | <li>Promoción de la apertura de datos de la Administración en formatos abiertos.</li> |
| 732 | <li>Fomento de la reutilización de datos entre administraciones y por parte de la comunidad de reutilizadores con el objetivo de generar valor social y logar una administración más eficiente y transparente.</li> |
| 733 | </ul> |
| 734 | <p>Estas funciones son ejercidas por la <a href=" |
Cualquiera que lo pulse recibe una página con código 200, el de todo bien, que dice: «Lo sentimos, se ha producido un error en la aplicación. Póngase en contacto con el Administrador». Debajo, subrayado como en un formulario de los noventa, un ID ERROR de trece cifras. Y un «Mensaje», que es el título de esta ficha: por favor, establezca un datasource.

- Copia
- archivo
- Guardado
- 8 sep 2026
- Peso
- 31,6 kB
- sha256
- e12f6563e6b3…
| 314 | function mostrar(nombreCapa){ |
| 315 | document. |
| 316 | } |
| 317 | function ocultar(nombreCapa){ |
| 318 | document. |
| 319 | } |
| 320 | </script> |
| 321 | |
| 322 | <table width="100%" border="0" cellpadding="0" cellspacing="0"> |
| 323 | <tr> |
| 324 | <td align="center"> |
| 325 | Lo sentimos, se ha producido un error en la aplicación. Póngase en contacto con el Administrador. |
| 326 | </td> |
| 327 | </tr> |
| 328 | <tr> |
| 329 | <td> |
| 330 | <br /> |
| 331 | <td> |
| 332 | </tr> |
| 333 | <tr> |
| 334 | <td> |
| 335 | <br /> |
| 336 | </td> |
| 328 | <tr> |
| 329 | <td> |
| 330 | <br /> |
| 331 | <td> |
| 332 | </tr> |
| 333 | <tr> |
| 334 | <td> |
| 335 | <br /> |
| 336 | </td> |
| 337 | </tr> |
| 338 | <tr> |
| 339 | <td> <u>ID ERROR:</u> 1788869420795</td> |
| 340 | </tr> |
| 341 | <tr> |
| 342 | <td> |
| 343 | <br /> |
| 344 | </td> |
| 345 | </tr> |
| 346 | <tr> |
| 347 | <td>& |
| 348 | </tr> |
| 349 | <tr> |
| 350 | <td> |
| 336 | </td> |
| 337 | </tr> |
| 338 | <tr> |
| 339 | <td> <u>ID ERROR:</u> 1788869420795</td> |
| 340 | </tr> |
| 341 | <tr> |
| 342 | <td> |
| 343 | <br /> |
| 344 | </td> |
| 345 | </tr> |
| 346 | <tr> |
| 347 | <td>& |
| 348 | </tr> |
| 349 | <tr> |
| 350 | <td> |
| 351 | <br /> |
| 352 | <br /> |
| 353 | </td> |
| 354 | </tr> |
| 355 | <tr> |
| 356 | <td> |
| 357 | <input type="button" name="btnInfor" value="Mas Información ..." class="boton" onclick=" |
| 358 | </td> |
Un datasource es, en Java, la conexión con la base de datos: el sitio del que la aplicación saca lo que enseña. Por favor, establezca uno, es una frase escrita para quien instala el programa, no para quien lo usa; el trato de usted y el por favor van dirigidos a quien configura el servidor. Ese no está. Está el visitante, que quería leer un acuerdo de 2009 y a quien se le pide amablemente que configure un servidor.
El botón dice «Mas Información ...», sin tilde y con sus tres puntos, y cumple lo que promete. Pulsa una función de JavaScript, evalua, que cambia la visibilidad de una capa que la página trae escondida. Dentro de la capa, una tabla con borde, el borde de las tablas de 1998, y una fecha: 9/8/26 2:10 PM. Es el 8 de septiembre de 2026 a las dos y diez de la tarde, hora de aquí. La máquina vive en nuestro huso horario y escribe las fechas como en Ohio, mes, día, año de dos cifras y reloj de doce horas.
- Copia
- archivo
- Guardado
- 8 sep 2026
- Peso
- 31,6 kB
- sha256
- e12f6563e6b3…
| 346 | <tr> |
| 347 | <td>& |
| 348 | </tr> |
| 349 | <tr> |
| 350 | <td> |
| 351 | <br /> |
| 352 | <br /> |
| 353 | </td> |
| 354 | </tr> |
| 355 | <tr> |
| 356 | <td> |
| 357 | <input type="button" name="btnInfor" value="Mas Información ..." class="boton" onclick=" |
| 358 | </td> |
| 359 | </tr> |
| 360 | <tr> |
| 361 | <td> |
| 362 | <br /> |
| 363 | </td> |
| 364 | </tr> |
| 365 | <tr> |
| 366 | <td> |
| 367 | <div id="capa" style="visibility:hidden"> |
| 368 | <table border="1" width="50%"> |
| 356 | <td> |
| 357 | <input type="button" name="btnInfor" value="Mas Información ..." class="boton" onclick=" |
| 358 | </td> |
| 359 | </tr> |
| 360 | <tr> |
| 361 | <td> |
| 362 | <br /> |
| 363 | </td> |
| 364 | </tr> |
| 365 | <tr> |
| 366 | <td> |
| 367 | <div id="capa" style="visibility:hidden"6> |
| 368 | <table border="1" width="50%"> |
| 369 | <tr> |
| 370 | <td>& |
| 371 | </tr> |
| 372 | <tr> |
| 373 | <td>& |
| 374 | </tr> |
| 375 | <tr> |
| 376 | <td>& |
| 377 | </tr> |
| 378 | <tr> |
| 379 | <td>& |
| 380 | </tr> |
| 381 | <tr> |
Sigue una ficha técnica que ningún visitante pidió. La de la captura del 8 de septiembre dice la excepción, el componente, la clase y el método que falló, con sus nombres de dentro del programa. Y, con título propio, la traza. La traza es la lista de llamadas que estaban en marcha cuando la aplicación se rindió, de la más honda a la más alta.
- Copia
- archivo
- Guardado
- 8 sep 2026
- Peso
- 31,6 kB
- sha256
- e12f6563e6b3…
| 365 | <tr> |
| 366 | <td> |
| 367 | <div id="capa" style="visibility:hidden"> |
| 368 | <table border="1" width="50%"> |
| 369 | <tr> |
| 370 | <td>& |
| 371 | </tr> |
| 372 | <tr> |
| 373 | <td>& |
| 374 | </tr> |
| 375 | <tr> |
| 376 | <td>& |
| 377 | </tr> |
| 378 | <tr> |
| 379 | <td>& |
| 380 | </tr> |
| 381 | <tr> |
| 382 | <td>& |
| 383 | </tr> |
| 384 | <tr> |
| 385 | <td>& |
| 386 | </tr> |
| 387 | </table> |
| 388 | <table border="0" width="50%"> |
| 389 | <tr align="right"> |
| 390 | <td><a href=" |
| 391 | </tr> |
| 392 | </table> |
| 393 | </div> |
La más honda: java.lang.IllegalStateException con el mismo por favor, lanzada en la línea 72 de V97AGestorConexion, el gestor de conexiones de un paquete que se llama accesoBD. La pedía obtenerTema, línea 64; a esta la llamaba tratarPeticion, línea 68. Números de línea del código fuente de una aplicación que el público no ve, publicados en la página que sí ve.
- Copia
- archivo
- Guardado
- 8 sep 2026
- Peso
- 31,6 kB
- sha256
- e12f6563e6b3…
| 374 | </tr> |
| 375 | <tr> |
| 376 | <td>& |
| 377 | </tr> |
| 378 | <tr> |
| 379 | <td>& |
| 380 | </tr> |
| 381 | <tr> |
| 382 | <td>& |
| 383 | </tr> |
| 384 | <tr> |
| 385 | …/> |
| 386 | </tr> |
| 387 | </table> |
| 388 | <table border="0" width="50%"> |
| 389 | <tr align="right"> |
| 390 | <td><a href=" |
| 391 | </tr> |
| 392 | </table> |
| 393 | </div> |
| 394 | </td> |
| 395 | </tr> |
| 396 | <tr> |
accesoBD.Más arriba, la petición entra por doGet, línea 58 de V97AListaAcuerdosServlet, el nombre que aparece en la dirección. Pasa por javax.servlet, el nombre de paquete que la especificación dejó atrás en 2020, y de ahí en adelante todo es weblogic: 21 de los 37 pasos llevan ese prefijo, hasta el último, ExecuteThread.run, el hilo del servidor de aplicaciones de Oracle. Once pasos son de la propia aplicación, cinco de la especificación de servlets y veintiuno del servidor. Al pie, un enlace: «Imprimir».
- Copia
- archivo
- Guardado
- 8 sep 2026
- Peso
- 31,6 kB
- sha256
- e12f6563e6b3…
| 374 | </tr> |
| 375 | <tr> |
| 376 | <td>& |
| 377 | </tr> |
| 378 | <tr> |
| 379 | <td>& |
| 380 | </tr> |
| 381 | <tr> |
| 382 | <td>& |
| 383 | </tr> |
| 384 | <tr> |
| 385 | … at v97a. |
| 386 | </tr> |
| 387 | </table> |
| 388 | <table border="0" width="50%"> |
| 389 | <tr align="right"> |
| 390 | <td><a href=" |
| 391 | </tr> |
| 392 | </table> |
| 393 | </div> |
| 394 | </td> |
| 395 | </tr> |
| 396 | <tr> |
doGet, la función que la atiende, en la línea 58 del programa que da nombre a la dirección; después, la capa estándar javax.servlet y el primer weblogic, que es el servidor.El ID ERROR también se deja leer. 1788869420795 son milisegundos contados desde el 1 de enero de 1970: el 8 de septiembre de 2026 a las 12:10:20 UTC, el mismo segundo en que guardamos la página. El identificador del error es un reloj, no un expediente. La versión en euskera del mismo enlace, guardada cuatro minutos después, trae el mismo error con otro reloj: 1788869646816, las 12:14:06.
El archivo guarda la respuesta del 8 de septiembre de 2026 (31.557 bytes, 536 líneas, con la cabecera y el pie del portal). El 14 de septiembre volvimos a seguir el enlace de la página de orígenes: dos redirecciones y el mismo error a las 20:48:42 UTC, con su reloj a juego, 1789418922321, y su fecha, 9/14/26 10:48 PM. Siete minutos más tarde, pedida a su dirección final en www.euskadi.eus, otra vez: 1789419335928.
Las copias del 14 de septiembre se rinden antes, con una traza de 18 pasos, y con la misma excepción y la misma línea 72. La del 23 de septiembre, igual, con otro reloj: 1790166216713, las 12:23:36 UTC. Cada visita fabrica un error nuevo con la hora exacta. El acuerdo no sale en ninguna. Ese mismo día, el enlace de debajo, el del PDF, se abría sin problema: un documento escaneado de 270.547 bytes. Diecisiete años después, la frase que cita el acuerdo contesta con una traza de Java, y el PDF espera un renglón más abajo.
Un enlace a 2009 que contesta con la hora exacta de ahora mismo, en milisegundos, y un ruego a un instalador que no está. Para leer el acuerdo hay que bajar un renglón.
- El enlace de la frase del apartado de orígenes de opendata.euskadi.eus lleva a una página que responde 200 con un error de aplicación, un mensaje dirigido a quien la configura y, tras un botón, la fecha, las clases y la traza de Java con sus números de línea.
- El ID de error es la hora en milisegundos.
- Lo guardamos el 8 de septiembre de 2026, con una traza de 37 pasos, y seguía igual el 14, por el enlace y por la dirección final, y el 23, las dos veces con una traza de 18 pasos.
- Un renglón por debajo, la misma página enlaza un PDF titulado «Acuerdo del Consejo de Gobierno sobre Open Data Euskadi (pdf, 268 kb)», que el 23 de septiembre respondía 200 con un documento escaneado de 270.547 bytes.
- Por qué falta el datasource ni desde cuándo: la copia más antigua que conservamos es del 8 de septiembre de 2026 (la del 31 de agosto la sobrescribió esa misma captura).
- Qué versión de WebLogic o de Java hay detrás: la traza no la dice.
- Que la traza permita nada más que leerla: no lo hemos probado ni lo vamos a probar.
- Que la aplicación no funcione con otros parámetros: solo hemos pedido el enlace de la página de orígenes, en castellano y en euskera.
- Qué dice el PDF: es un escaneo y no lo hemos leído; el enlace lo titula como el acuerdo.
De dónde sale cada cita
Cada trozo de código de esta ficha está en un fichero guardado tal como lo entregó el servidor, con su huella (sha256) y su hora. Las citas entre «» se comprueban por programa contra ese fichero antes de publicar.
- https://opendata.euskadi.eus/sobre-open-data/-/open-data-euskadi/8 de septiembre de 2026, 14:09archivosha256 62693ed0cc50e1497675738f8a71caab59a7928aa612700acfff0982a997ea0e
- https://opendata.euskadi.eus/sobre-open-data/-/open-data-euskadi/14 de septiembre de 2026, 22:49en vivo · distinto · la cita siguesha256 53a1433e98fb1df4f803076aac56279719aeaa3b64a6a3dbdf5980f262d6f6e8
- https://www.euskadi.eus/web01-s1ezaleh/eu/v97aAcuerdosWar/V97AListaAcuerdosServlet?idioma=c&tema=1&origen=D&fecha=200912298 de septiembre de 2026, 14:10archivosha256 e12f6563e6b3d7759194574193dfe14f4671fc846970877db1ce67687113b152
- https://www.euskadi.eus/web01-s1ezaleh/eu/v97aAcuerdosWar/V97AListaAcuerdosServlet?idioma=c&tema=1&origen=D&fecha=2009122914 de septiembre de 2026, 22:55en vivo · distinto · las 11 citas siguensha256 5e5ddf950c793468a7d9c3dd7c55ae57314fa41eadcf3134518ee66129da9721