Author: areshetnyak
Date: 2010-03-05 04:21:10 -0500 (Fri, 05 Mar 2010)
New Revision: 2013
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataReader.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java
Log:
EXOJCR-571 : The PesristedValueDataReader/Writer was changed to use
StreamPersistedValueData.
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataReader.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataReader.java 2010-03-05
07:26:42 UTC (rev 2012)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataReader.java 2010-03-05
09:21:10 UTC (rev 2013)
@@ -24,6 +24,7 @@
import org.exoplatform.services.jcr.impl.dataflow.AbstractPersistedValueData;
import
org.exoplatform.services.jcr.impl.dataflow.persistent.ByteArrayPersistedValueData;
import org.exoplatform.services.jcr.impl.dataflow.persistent.FilePersistedValueData;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.StreamPersistedValueData;
import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
import org.exoplatform.services.jcr.impl.util.io.SpoolFile;
@@ -118,14 +119,14 @@
// TODO optimize writeToFile - use channels or streams
writeToFile(in, sf, length);
holder.put(id, sf);
- return new FilePersistedValueData(orderNumber, sf);
+ return new StreamPersistedValueData(orderNumber, sf);
}
else
{
sf.acquire(this); // TODO workaround for AsyncReplication test
try
{
- AbstractPersistedValueData vd = new FilePersistedValueData(orderNumber,
sf);
+ AbstractPersistedValueData vd = new StreamPersistedValueData(orderNumber,
sf);
// skip data in input stream
if (in.skip(length) != length)
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java 2010-03-05
07:26:42 UTC (rev 2012)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/serialization/PersistedValueDataWriter.java 2010-03-05
09:21:10 UTC (rev 2013)
@@ -22,8 +22,10 @@
import org.exoplatform.services.jcr.dataflow.serialization.SerializationConstants;
import org.exoplatform.services.jcr.impl.dataflow.AbstractPersistedValueData;
import org.exoplatform.services.jcr.impl.dataflow.persistent.FilePersistedValueData;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.StreamPersistedValueData;
import org.exoplatform.services.jcr.util.IdGenerator;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -67,7 +69,16 @@
// write file content
FilePersistedValueData streamed = (FilePersistedValueData)vd;
- InputStream in = streamed.getAsStream();
+ InputStream in = null;
+
+ if (streamed.getFile() == null && vd instanceof
StreamPersistedValueData)
+ {
+ in = new FileInputStream(((StreamPersistedValueData)vd).getTempFile());
+ }
+ else
+ {
+ in = streamed.getAsStream();
+ }
// TODO optimize it, use channels
if (streamed.getFile() instanceof SerializationSpoolFile)
Show replies by date