Comportement étrange de File.list ()

J’ai une procédure stockée Java dans la firebase database Oracle 11g. La version Java dans Oracle est la version 1.5x. Qu’est-ce qu’il fait est de lire des fichiers dans un répertoire Unix particulier. J’ai déjà fait ce genre de choses auparavant, mais jamais contre ce répertoire Unix. C’est la première fois que j’ai ce problème.

Le problème est que list() sur ce répertoire ne renvoie qu’une entrée dans le tableau qui capture les résultats. Et oui, il y a beaucoup d’autres fichiers et sous-répertoires dans ce répertoire principal.

Faire un ls -ltrabF sur ce répertoire pour les fichiers que je veux obtenir produit ce résultat:

 -rwxrwxrwx 1 msdwjj staff 26134 Dec 18 16:45 myfile.pdf 

Faire la même commande ls sur un autre répertoire contenant les mêmes fichiers que je reçois:

 -rw-r--r-- 1 msdwjj staff 26134 Dec 16 16:02 myfile.pdf 

Pourtant, je peux lire ensuite dans le dernier cas, mais pas dans le premier cas. Serait-ce le propriétaire du répertoire? Si oui, pourquoi pourrais-je accéder à un fichier et pas à d’autres?

J’ai travaillé avec le DBA et il a ouvert au monde des permissions sur ce répertoire et tous les fichiers qu’il contient, et seulement cette seule entrée – toujours la même – est renvoyée. J’ai également vérifié la lisibilité du répertoire en utilisant canRead () sur le répertoire et il renvoie true.

Ce n’est pas un problème de filtrage, car j’ai affirmé que list() – sans le filtre transmis – ne retourne toujours que cette seule entrée. J’avais écrit un filtre et l’ai enlevé juste pour vérifier ceci.

Si je lance le code à partir d’un programme qui s’exécute à partir de l’invite de commande Unix, cela fonctionne correctement. Si je change simplement le répertoire de ce Java SP, cela fonctionne bien.

Si quelqu’un peut penser à autre chose à vérifier, je serais très obligé. Existe-t-il une autre méthode Java à utiliser en dehors de celles mentionnées? Y a-t-il quelque chose dans Unix que je pourrais demander à l’administrateur de firebase database à propos duquel tout le monde peut penser?

Pourrait être dû à un cadre de contrôle d’access autre que les permissions de fichier Unix, telles que SELinux.