[ 2642430 ] Upload give intermitten IllegalStateException
This commit is contained in:
parent
0cf4478890
commit
735e61778a
|
@ -25,7 +25,6 @@ import org.adempiere.webui.component.FilenameBox;
|
||||||
import org.adempiere.webui.event.ValueChangeEvent;
|
import org.adempiere.webui.event.ValueChangeEvent;
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.Env;
|
|
||||||
import org.zkoss.util.media.Media;
|
import org.zkoss.util.media.Media;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
@ -113,7 +112,7 @@ public class WFilenameEditor extends WEditor
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
file = Fileupload.get();
|
file = Fileupload.get(true);
|
||||||
|
|
||||||
if (file == null)
|
if (file == null)
|
||||||
return;
|
return;
|
||||||
|
@ -136,10 +135,9 @@ public class WFilenameEditor extends WEditor
|
||||||
|
|
||||||
fos = new FileOutputStream(tempFile);
|
fos = new FileOutputStream(tempFile);
|
||||||
byte[] bytes = null;
|
byte[] bytes = null;
|
||||||
try {
|
if (file.inMemory()) {
|
||||||
bytes = file.getByteData();
|
bytes = file.getByteData();
|
||||||
}
|
} else {
|
||||||
catch ( IllegalStateException ise ) {
|
|
||||||
InputStream is = file.getStreamData();
|
InputStream is = file.getStreamData();
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
byte[] buf = new byte[ 1000 ];
|
byte[] buf = new byte[ 1000 ];
|
||||||
|
|
|
@ -17,6 +17,9 @@
|
||||||
package org.adempiere.webui.panel;
|
package org.adempiere.webui.panel;
|
||||||
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import org.adempiere.webui.apps.AEnv;
|
import org.adempiere.webui.apps.AEnv;
|
||||||
|
@ -412,7 +415,7 @@ public class WAttachment extends Window implements EventListener
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
media = Fileupload.get();
|
media = Fileupload.get(true);
|
||||||
|
|
||||||
if (media != null)
|
if (media != null)
|
||||||
{
|
{
|
||||||
|
@ -437,7 +440,7 @@ public class WAttachment extends Window implements EventListener
|
||||||
{
|
{
|
||||||
if (m_attachment.getEntryName(i).equals(fileName))
|
if (m_attachment.getEntryName(i).equals(fileName))
|
||||||
{
|
{
|
||||||
m_attachment.updateEntry(i, media.getByteData());
|
m_attachment.updateEntry(i, getMediaData(media));
|
||||||
cbContent.setSelectedIndex(i);
|
cbContent.setSelectedIndex(i);
|
||||||
m_change = true;
|
m_change = true;
|
||||||
return;
|
return;
|
||||||
|
@ -446,7 +449,7 @@ public class WAttachment extends Window implements EventListener
|
||||||
|
|
||||||
//new
|
//new
|
||||||
|
|
||||||
if (m_attachment.addEntry(fileName, media.getByteData()))
|
if (m_attachment.addEntry(fileName, getMediaData(media)))
|
||||||
{
|
{
|
||||||
cbContent.appendItem(media.getName(), media.getName());
|
cbContent.appendItem(media.getName(), media.getName());
|
||||||
cbContent.setSelectedIndex(cbContent.getItemCount()-1);
|
cbContent.setSelectedIndex(cbContent.getItemCount()-1);
|
||||||
|
@ -454,6 +457,29 @@ public class WAttachment extends Window implements EventListener
|
||||||
}
|
}
|
||||||
} // getFileName
|
} // getFileName
|
||||||
|
|
||||||
|
private byte[] getMediaData(Media media) {
|
||||||
|
byte[] bytes = null;
|
||||||
|
|
||||||
|
if (media.inMemory())
|
||||||
|
bytes = media.getByteData();
|
||||||
|
else {
|
||||||
|
InputStream is = media.getStreamData();
|
||||||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
byte[] buf = new byte[ 1000 ];
|
||||||
|
int byteread = 0;
|
||||||
|
try {
|
||||||
|
while (( byteread=is.read(buf) )!=-1)
|
||||||
|
baos.write(buf,0,byteread);
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||||
|
throw new IllegalStateException(e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
bytes = baos.toByteArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete entire Attachment
|
* Delete entire Attachment
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue