Interpretare un messaggio di errore di eccezione fusione JVM Classe - qual è il tipo di originale che non può essere colato

StackOverflow https://stackoverflow.com/questions/2154366

  •  23-09-2019
  •  | 
  •  

Domanda

Ho un sistema di produzione Java con IBM JVM in esecuzione su Linux.
Un cliente segnala la seguente eccezione stampata nel registro:
java.lang.ClassCastException: [B incompatible with java.lang.String
Quando si cerca di lanciare i singoli attributi restituiti da: javax.naming.directory.InitialDirContext(...)
Da questa eccezione non riesco a capire qual è il tipo che non potrebbe essere convertito in stringa. Ciò che è "B"?

Normalmente, so che un messaggio di errore calco dovrebbe essere simile a questo:
java.lang.ClassCastException: java.lang.Integer incompatible with java.lang.String
Ma come si può vedere che non è il caso nella prima stampa.
Ho pensato che ci potrebbe essere una classe reale di nome B, ma sono riuscito a trovare uno sotto javax.naming ...
C'è un nome offuscamento succedendo qui?
Io ora intenzione di inviare al cliente una versione che stamperà la classe dell'istanza prima di provare a lanciare a stringa:
i.getClass().getCanonicalName()
Ma questi pongs ping prendono una settimana, se avete un'idea e mi potrebbe aiutare prima di quella, che sarebbe super!

È stato utile?

Soluzione

[B è un array di byte (cioè una byte[]). Si noti che il [ è una parte del nome.

per Class.getName() per le regole su come si producono quei nomi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top