List of usage examples for java.beans XMLDecoder setExceptionListener
public void setExceptionListener(ExceptionListener exceptionListener)
From source file:Main.java
public static Object decodeObject(byte[] byteArray, final boolean noisy) { ByteArrayInputStream inputStream = new ByteArrayInputStream(byteArray); XMLDecoder decoder = new XMLDecoder(inputStream); decoder.setExceptionListener(new ExceptionListener() { public void exceptionThrown(Exception ex) { if (noisy) ex.printStackTrace();//ww w . ja v a 2 s. co m } }); Object copy = decoder.readObject(); decoder.close(); return copy; }
From source file:de.willuhn.jameica.hbci.io.csv.ProfileUtil.java
/** * Laedt die vorhandenen Profile fuer das Format. * @param format das Format./* www . jav a 2s . c o m*/ * @return die Liste der Profile. */ public static List<Profile> read(Format format) { List<Profile> result = new ArrayList<Profile>(); if (format == null) { Logger.warn("no format given"); Application.getMessagingFactory().sendMessage( new StatusBarMessage(i18n.tr("Kein Format ausgewhlt"), StatusBarMessage.TYPE_ERROR)); return result; } final Profile dp = format.getDefaultProfile(); result.add(dp); // System-Profil wird immer vorn einsortiert // 1. Mal schauen, ob wir gespeicherte Profil fuer das Format haben File dir = new File(Application.getPluginLoader().getPlugin(HBCI.class).getResources().getWorkPath(), "csv"); if (!dir.exists()) return result; File file = new File(dir, format.getClass().getName() + ".xml"); if (!file.exists() || !file.canRead()) return result; Logger.info("reading csv profile " + file); XMLDecoder decoder = null; try { decoder = new XMLDecoder(new BufferedInputStream(new FileInputStream(file))); decoder.setExceptionListener(new ExceptionListener() { public void exceptionThrown(Exception e) { throw new RuntimeException(e); } }); // Es ist tatsaechlich so, dass "readObject()" nicht etwa NULL liefert, wenn keine Objekte mehr in der // Datei sind sondern eine ArrayIndexOutOfBoundsException wirft. try { for (int i = 0; i < 1000; ++i) { Profile p = (Profile) decoder.readObject(); // Migration aus der Zeit vor dem Support mulitpler Profile: // Da konnte der User nur das eine existierende Profil aendern, es wurde automatisch gespeichert // Das hatte gar keinen Namen. Falls also ein Profil ohne Name existiert (inzwischen koennen keine // mehr ohne Name gespeichert werden), dann ist es das vom User geaenderte Profil. Das machen wir // automatisch zum ersten User-spezifischen Profil if (StringUtils.trimToNull(p.getName()) == null) { p.setName(dp.getName() + " 2"); p.setSystem(false); } result.add(p); } } catch (ArrayIndexOutOfBoundsException e) { // EOF } Logger.info("read " + (result.size() - 1) + " profiles from " + file); Collections.sort(result); // Der User hat beim letzten Mal eventuell nicht alle Spalten zugeordnet. // Die wuerden jetzt hier in dem Objekt fehlen. Daher nehmen wir // noch die Spalten aus dem Default-Profil und haengen die fehlenden noch an. } catch (Exception e) { Logger.error("unable to read profile " + file, e); Application.getMessagingFactory().sendMessage(new StatusBarMessage( i18n.tr("Laden der Profile fehlgeschlagen: {0}", e.getMessage()), StatusBarMessage.TYPE_ERROR)); } finally { if (decoder != null) { try { decoder.close(); } catch (Exception e) { /* useless */} } } return result; }
From source file:org.settings4j.objectresolver.JavaXMLBeansObjectResolver.java
@Override protected Object contentToObject(final String key, final Properties properties, final byte[] content, final ContentResolver contentResolver) { final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(content); XMLDecoder encoder = null; try {//from w w w . j a v a 2 s . c om encoder = new XMLDecoder(byteArrayInputStream); encoder.setExceptionListener(new LogDecoderExceptionListener(key)); return encoder.readObject(); } finally { if (encoder != null) { encoder.close(); } } }
From source file:org.jtrfp.trcl.gui.ConfigWindow.java
private boolean readSettingsFromFile(File f) { try {/* ww w . j a v a 2 s.c o m*/ FileInputStream is = new FileInputStream(f); XMLDecoder xmlDec = new XMLDecoder(is); xmlDec.setExceptionListener(new ExceptionListener() { @Override public void exceptionThrown(Exception e) { e.printStackTrace(); } }); TRConfiguration src = (TRConfiguration) xmlDec.readObject(); xmlDec.close(); if (config != null) BeanUtils.copyProperties(config, src); else config = src; } catch (Exception e) { JOptionPane.showMessageDialog(this, "Failed to read the specified file:\n" + e.getLocalizedMessage(), "File read failure", JOptionPane.ERROR_MESSAGE); return false; } return true; }