java.io.WriteAbortedException Java Examples
The following examples show how to use
java.io.WriteAbortedException.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: MonteCarloTest.java From headlong with Apache License 2.0 | 6 votes |
@Test public void testNotSerializable() throws Throwable { final Random r = new Random(); final Keccak k = new Keccak(256); final MonteCarloTask original = new MonteCarloTask(newComplexTestCase(r, k), 0, 1); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); TestUtils.assertThrown(NotSerializableException.class, "com.esaulpaugh.headlong.abi.MonteCarloTestCase", () -> new ObjectOutputStream(baos) .writeObject(original)); TestUtils.assertThrown(WriteAbortedException.class, "writing aborted; java.io.NotSerializableException: com.esaulpaugh.headlong.abi.MonteCarloTestCase", () -> new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray())) .readObject() ); }
Example #2
Source File: SerializableProxy.java From sarl with Apache License 2.0 | 6 votes |
/** This function enables to deserialize an instance of this proxy. * @throws ObjectStreamException if the deserialization fails */ private Object readResolve() throws ObjectStreamException { Constructor<?> compatible = null; for (final Constructor<?> candidate : this.proxyType.getDeclaredConstructors()) { if (candidate != null && isCompatible(candidate)) { if (compatible != null) { throw new IllegalStateException(); } compatible = candidate; } } if (compatible != null) { if (!compatible.isAccessible()) { compatible.setAccessible(true); } try { final Object[] arguments = new Object[this.values.length + 1]; System.arraycopy(this.values, 0, arguments, 1, this.values.length); return compatible.newInstance(arguments); } catch (Exception exception) { throw new WriteAbortedException(exception.getLocalizedMessage(), exception); } } throw new InvalidClassException("compatible constructor not found"); //$NON-NLS-1$ }
Example #3
Source File: StandardSession.java From Tomcat8-Source-Read with MIT License | 4 votes |
/** * Read a serialized version of this session object from the specified * object input stream. * <p> * <b>IMPLEMENTATION NOTE</b>: The reference to the owning Manager * is not restored by this method, and must be set explicitly. * * @param stream The input stream to read from * * @exception ClassNotFoundException if an unknown class is specified * @exception IOException if an input/output error occurs */ protected void doReadObject(ObjectInputStream stream) throws ClassNotFoundException, IOException { // Deserialize the scalar instance variables (except Manager) authType = null; // Transient only creationTime = ((Long) stream.readObject()).longValue(); lastAccessedTime = ((Long) stream.readObject()).longValue(); maxInactiveInterval = ((Integer) stream.readObject()).intValue(); isNew = ((Boolean) stream.readObject()).booleanValue(); isValid = ((Boolean) stream.readObject()).booleanValue(); thisAccessedTime = ((Long) stream.readObject()).longValue(); principal = null; // Transient only // setId((String) stream.readObject()); id = (String) stream.readObject(); if (manager.getContext().getLogger().isDebugEnabled()) manager.getContext().getLogger().debug ("readObject() loading session " + id); // Deserialize the attribute count and attribute values if (attributes == null) attributes = new ConcurrentHashMap<>(); int n = ((Integer) stream.readObject()).intValue(); boolean isValidSave = isValid; isValid = true; for (int i = 0; i < n; i++) { String name = (String) stream.readObject(); final Object value; try { value = stream.readObject(); } catch (WriteAbortedException wae) { if (wae.getCause() instanceof NotSerializableException) { String msg = sm.getString("standardSession.notDeserializable", name, id); if (manager.getContext().getLogger().isDebugEnabled()) { manager.getContext().getLogger().debug(msg, wae); } else { manager.getContext().getLogger().warn(msg); } // Skip non serializable attributes continue; } throw wae; } if (manager.getContext().getLogger().isDebugEnabled()) manager.getContext().getLogger().debug(" loading attribute '" + name + "' with value '" + value + "'"); // Handle the case where the filter configuration was changed while // the web application was stopped. if (exclude(name, value)) { continue; } attributes.put(name, value); } isValid = isValidSave; if (listeners == null) { listeners = new ArrayList<>(); } if (notes == null) { notes = new Hashtable<>(); } }
Example #4
Source File: DeltaSession.java From Tomcat7.0.67 with Apache License 2.0 | 4 votes |
private void readObject(ObjectInput stream) throws ClassNotFoundException, IOException { // Deserialize the scalar instance variables (except Manager) authType = null; // Transient only creationTime = ( (Long) stream.readObject()).longValue(); lastAccessedTime = ( (Long) stream.readObject()).longValue(); maxInactiveInterval = ( (Integer) stream.readObject()).intValue(); isNew = ( (Boolean) stream.readObject()).booleanValue(); isValid = ( (Boolean) stream.readObject()).booleanValue(); thisAccessedTime = ( (Long) stream.readObject()).longValue(); version = ( (Long) stream.readObject()).longValue(); boolean hasPrincipal = stream.readBoolean(); principal = null; if (hasPrincipal) { principal = SerializablePrincipal.readPrincipal(stream); } // setId((String) stream.readObject()); id = (String) stream.readObject(); if (log.isDebugEnabled()) log.debug(sm.getString("deltaSession.readSession", id)); // Deserialize the attribute count and attribute values if (attributes == null) attributes = new ConcurrentHashMap<String, Object>(); int n = ( (Integer) stream.readObject()).intValue(); boolean isValidSave = isValid; isValid = true; for (int i = 0; i < n; i++) { String name = (String) stream.readObject(); final Object value; try { value = stream.readObject(); } catch (WriteAbortedException wae) { if (wae.getCause() instanceof NotSerializableException) { // Skip non serializable attributes continue; } throw wae; } attributes.put(name, value); } isValid = isValidSave; // Session listeners n = ((Integer) stream.readObject()).intValue(); if (listeners == null || n > 0) { listeners = new ArrayList<SessionListener>(); } for (int i = 0; i < n; i++) { SessionListener listener = (SessionListener) stream.readObject(); listeners.add(listener); } if (notes == null) { notes = new Hashtable<String,Object>(); } activate(); }
Example #5
Source File: StandardSession.java From Tomcat7.0.67 with Apache License 2.0 | 4 votes |
/** * Read a serialized version of this session object from the specified * object input stream. * <p> * <b>IMPLEMENTATION NOTE</b>: The reference to the owning Manager * is not restored by this method, and must be set explicitly. * * @param stream The input stream to read from * * @exception ClassNotFoundException if an unknown class is specified * @exception IOException if an input/output error occurs */ protected void readObject(ObjectInputStream stream) throws ClassNotFoundException, IOException { // Deserialize the scalar instance variables (except Manager) authType = null; // Transient only creationTime = ((Long) stream.readObject()).longValue(); lastAccessedTime = ((Long) stream.readObject()).longValue(); maxInactiveInterval = ((Integer) stream.readObject()).intValue(); isNew = ((Boolean) stream.readObject()).booleanValue(); isValid = ((Boolean) stream.readObject()).booleanValue(); thisAccessedTime = ((Long) stream.readObject()).longValue(); principal = null; // Transient only // setId((String) stream.readObject()); id = (String) stream.readObject(); if (manager.getContainer().getLogger().isDebugEnabled()) manager.getContainer().getLogger().debug ("readObject() loading session " + id); // Deserialize the attribute count and attribute values if (attributes == null) attributes = new ConcurrentHashMap<String, Object>(); int n = ((Integer) stream.readObject()).intValue(); boolean isValidSave = isValid; isValid = true; for (int i = 0; i < n; i++) { String name = (String) stream.readObject(); final Object value; try { value = stream.readObject(); } catch (WriteAbortedException wae) { if (wae.getCause() instanceof NotSerializableException) { // Skip non serializable attributes continue; } throw wae; } if (manager.getContainer().getLogger().isDebugEnabled()) manager.getContainer().getLogger().debug(" loading attribute '" + name + "' with value '" + value + "'"); attributes.put(name, value); } isValid = isValidSave; if (listeners == null) { listeners = new ArrayList<SessionListener>(); } if (notes == null) { notes = new Hashtable<String, Object>(); } }
Example #6
Source File: RMIConnector.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
protected NotificationResult fetchNotifs(long clientSequenceNumber, int maxNotifications, long timeout) throws IOException, ClassNotFoundException { IOException org; while (true) { // used for a successful re-connection try { return connection.fetchNotifications(clientSequenceNumber, maxNotifications, timeout); } catch (IOException ioe) { org = ioe; // inform of IOException try { communicatorAdmin.gotIOException(ioe); // The connection should be re-established. continue; } catch (IOException ee) { // No more fetch, the Exception will be re-thrown. break; } // never reached } // never reached } // specially treating for an UnmarshalException if (org instanceof UnmarshalException) { UnmarshalException ume = (UnmarshalException)org; if (ume.detail instanceof ClassNotFoundException) throw (ClassNotFoundException) ume.detail; /* In Sun's RMI implementation, if a method return contains an unserializable object, then we get UnmarshalException wrapping WriteAbortedException wrapping NotSerializableException. In that case we extract the NotSerializableException so that our caller can realize it should try to skip past the notification that presumably caused it. It's not certain that every other RMI implementation will generate this exact exception sequence. If not, we will not detect that the problem is due to an unserializable object, and we will stop trying to receive notifications from the server. It's not clear we can do much better. */ if (ume.detail instanceof WriteAbortedException) { WriteAbortedException wae = (WriteAbortedException) ume.detail; if (wae.detail instanceof IOException) throw (IOException) wae.detail; } } else if (org instanceof MarshalException) { // IIOP will throw MarshalException wrapping a NotSerializableException // when a server fails to serialize a response. MarshalException me = (MarshalException)org; if (me.detail instanceof NotSerializableException) { throw (NotSerializableException)me.detail; } } // Not serialization problem, simply re-throw the orginal exception throw org; }
Example #7
Source File: RMIConnector.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
protected NotificationResult fetchNotifs(long clientSequenceNumber, int maxNotifications, long timeout) throws IOException, ClassNotFoundException { IOException org; while (true) { // used for a successful re-connection try { return connection.fetchNotifications(clientSequenceNumber, maxNotifications, timeout); } catch (IOException ioe) { org = ioe; // inform of IOException try { communicatorAdmin.gotIOException(ioe); // The connection should be re-established. continue; } catch (IOException ee) { // No more fetch, the Exception will be re-thrown. break; } // never reached } // never reached } // specially treating for an UnmarshalException if (org instanceof UnmarshalException) { UnmarshalException ume = (UnmarshalException)org; if (ume.detail instanceof ClassNotFoundException) throw (ClassNotFoundException) ume.detail; /* In Sun's RMI implementation, if a method return contains an unserializable object, then we get UnmarshalException wrapping WriteAbortedException wrapping NotSerializableException. In that case we extract the NotSerializableException so that our caller can realize it should try to skip past the notification that presumably caused it. It's not certain that every other RMI implementation will generate this exact exception sequence. If not, we will not detect that the problem is due to an unserializable object, and we will stop trying to receive notifications from the server. It's not clear we can do much better. */ if (ume.detail instanceof WriteAbortedException) { WriteAbortedException wae = (WriteAbortedException) ume.detail; if (wae.detail instanceof IOException) throw (IOException) wae.detail; } } else if (org instanceof MarshalException) { // IIOP will throw MarshalException wrapping a NotSerializableException // when a server fails to serialize a response. MarshalException me = (MarshalException)org; if (me.detail instanceof NotSerializableException) { throw (NotSerializableException)me.detail; } } // Not serialization problem, simply re-throw the orginal exception throw org; }
Example #8
Source File: DeltaSession.java From tomcatsrc with Apache License 2.0 | 4 votes |
private void readObject(ObjectInput stream) throws ClassNotFoundException, IOException { // Deserialize the scalar instance variables (except Manager) authType = null; // Transient only creationTime = ( (Long) stream.readObject()).longValue(); lastAccessedTime = ( (Long) stream.readObject()).longValue(); maxInactiveInterval = ( (Integer) stream.readObject()).intValue(); isNew = ( (Boolean) stream.readObject()).booleanValue(); isValid = ( (Boolean) stream.readObject()).booleanValue(); thisAccessedTime = ( (Long) stream.readObject()).longValue(); version = ( (Long) stream.readObject()).longValue(); boolean hasPrincipal = stream.readBoolean(); principal = null; if (hasPrincipal) { principal = SerializablePrincipal.readPrincipal(stream); } // setId((String) stream.readObject()); id = (String) stream.readObject(); if (log.isDebugEnabled()) log.debug(sm.getString("deltaSession.readSession", id)); // Deserialize the attribute count and attribute values if (attributes == null) attributes = new ConcurrentHashMap<String, Object>(); int n = ( (Integer) stream.readObject()).intValue(); boolean isValidSave = isValid; isValid = true; for (int i = 0; i < n; i++) { String name = (String) stream.readObject(); final Object value; try { value = stream.readObject(); } catch (WriteAbortedException wae) { if (wae.getCause() instanceof NotSerializableException) { // Skip non serializable attributes continue; } throw wae; } // Handle the case where the filter configuration was changed while // the web application was stopped. if (exclude(name, value)) { continue; } attributes.put(name, value); } isValid = isValidSave; // Session listeners n = ((Integer) stream.readObject()).intValue(); if (listeners == null || n > 0) { listeners = new ArrayList<SessionListener>(); } for (int i = 0; i < n; i++) { SessionListener listener = (SessionListener) stream.readObject(); listeners.add(listener); } if (notes == null) { notes = new Hashtable<String,Object>(); } activate(); }
Example #9
Source File: StandardSession.java From tomcatsrc with Apache License 2.0 | 4 votes |
/** * Read a serialized version of this session object from the specified * object input stream. * <p> * <b>IMPLEMENTATION NOTE</b>: The reference to the owning Manager * is not restored by this method, and must be set explicitly. * * @param stream The input stream to read from * * @exception ClassNotFoundException if an unknown class is specified * @exception IOException if an input/output error occurs */ protected void readObject(ObjectInputStream stream) throws ClassNotFoundException, IOException { // Deserialize the scalar instance variables (except Manager) authType = null; // Transient only creationTime = ((Long) stream.readObject()).longValue(); lastAccessedTime = ((Long) stream.readObject()).longValue(); maxInactiveInterval = ((Integer) stream.readObject()).intValue(); isNew = ((Boolean) stream.readObject()).booleanValue(); isValid = ((Boolean) stream.readObject()).booleanValue(); thisAccessedTime = ((Long) stream.readObject()).longValue(); principal = null; // Transient only // setId((String) stream.readObject()); id = (String) stream.readObject(); if (manager.getContainer().getLogger().isDebugEnabled()) manager.getContainer().getLogger().debug ("readObject() loading session " + id); // Deserialize the attribute count and attribute values if (attributes == null) attributes = new ConcurrentHashMap<String, Object>(); int n = ((Integer) stream.readObject()).intValue(); boolean isValidSave = isValid; isValid = true; for (int i = 0; i < n; i++) { String name = (String) stream.readObject(); final Object value; try { value = stream.readObject(); } catch (WriteAbortedException wae) { if (wae.getCause() instanceof NotSerializableException) { String msg = sm.getString("standardSession.notDeserializable", name, id); if (manager.getContainer().getLogger().isDebugEnabled()) { manager.getContainer().getLogger().debug(msg, wae); } else { manager.getContainer().getLogger().warn(msg); } // Skip non serializable attributes continue; } throw wae; } if (manager.getContainer().getLogger().isDebugEnabled()) manager.getContainer().getLogger().debug(" loading attribute '" + name + "' with value '" + value + "'"); // Handle the case where the filter configuration was changed while // the web application was stopped. if (exclude(name, value)) { continue; } attributes.put(name, value); } isValid = isValidSave; if (listeners == null) { listeners = new ArrayList<SessionListener>(); } if (notes == null) { notes = new Hashtable<String, Object>(); } }