[jboss-dev] smoke-test failures
Ales Justin
ales.justin at gmail.com
Fri Aug 8 07:25:01 EDT 2008
It's due to huge serialization by
org.jboss.deployers.vfs.plugins.structure.AbstractVFSDeploymentContext.
See:
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at
org.jboss.deployers.vfs.plugins.structure.AbstractVFSDeploymentContext.readExternal(AbstractVFSDeploymentContext.java:390)
at
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1755)
It's the way we do VirtualFile serialization here - a direct
Serialization of VirtualFile root, meaning whole .ear structure gets
serializaed.
Where we could only need something like I did for VFSDeployment:
private void writeObject(ObjectOutputStream out) throws IOException,
URISyntaxException
{
URL url = rootUrl;
if (url == null)
{
VFS vfs = getRoot().getVFS();
url = vfs.getRoot().toURL();
}
String pathName = path;
if (pathName == null)
pathName = getRoot().getPathName();
out.defaultWriteObject();
ObjectOutputStream.PutField fields = out.putFields();
fields.put("rootUrl", url);
fields.put("path", pathName);
out.writeFields();
}
private void readObject(ObjectInputStream in) throws IOException,
ClassNotFoundException
{
in.defaultReadObject();
ObjectInputStream.GetField fields = in.readFields();
rootUrl = (URL) fields.get("rootUrl", null);
path = (String) fields.get("path", null);
}
It's on my todo list.
But the problem is, that in the case of VFSDeployment this is trivial,
since it's a single root.
In VFSDeploymentContext we need to change a few List<VirtualFile> to use
this.
But I think the real problem is, that tests are accessing server side
stuff - DeploymentContext - where they should really go over
ProfileService/DeploymentManager.
Scott Stark wrote:
> I'm seeing these seam tests fail as well:
>
> <testcase
> classname="org.jboss.test.deployers.seam.test.SeamNumberguessExampleUnitTestCase"
> name="testExample" time="8.563">
> <error message="Java heap space"
> type="java.lang.OutOfMemoryError">java.lang.OutOfMemoryError: Java heap
> space
> at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:95)
> at
> org.jboss.virtual.plugins.context.zip.ZipEntryContext.copyStreamAndClose(ZipEntryContext.java:1059)
> at
> org.jboss.virtual.plugins.context.zip.ZipBytesWrapper.<init>(ZipBytesWrapper.java:56)
> at
> org.jboss.virtual.plugins.context.zip.ZipStreamWrapper.<init>(ZipStreamWrapper.java:82)
> at
> org.jboss.virtual.plugins.context.zip.ZipEntryContext.findEntry(ZipEntryContext.java:328)
> at
> org.jboss.virtual.plugins.context.zip.ZipEntryContext.createZipSource(ZipEntryContext.java:284)
> at
> org.jboss.virtual.plugins.context.zip.ZipEntryContext.init(ZipEntryContext.java:214)
> at
> org.jboss.virtual.plugins.context.zip.ZipEntryContext.<init>(ZipEntryContext.java:145)
> at
> org.jboss.virtual.plugins.context.zip.ZipEntryContext.<init>(ZipEntryContext.java:130)
> at
> org.jboss.virtual.plugins.context.zip.ZipEntryContextFactory.getVFS(ZipEntryContextFactory.java:71)
> at
> org.jboss.virtual.plugins.context.zip.ZipEntryContextFactory.getVFS(ZipEntryContextFactory.java:57)
> at
> org.jboss.virtual.plugins.context.AbstractVirtualFileHandler.readObject(AbstractVirtualFileHandler.java:663)
> at
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> at
> org.jboss.deployers.vfs.plugins.structure.AbstractVFSDeploymentContext.readExternal(AbstractVFSDeploymentContext.java:390)
> at
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1755)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1717)
> </error>
> </testcase>
>
>>> [junit] Running org.jboss.test.deployers.seam.test.SeamNumberguessExampleUnitTestCase
>>> [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 13.875 sec
>>> [junit] Test org.jboss.test.deployers.seam.test.SeamNumberguessExampleUnitTestCase FAILED
>>> [junit] Running org.jboss.test.deployers.seam.test.SeamVFSClassloadingUnitTestCase
>>> [junit] Tests run: 5, Failures: 0, Errors: 3, Time elapsed: 9.532 sec
>>> [junit] Test org.jboss.test.deployers.seam.test.SeamVFSClassloadingUnitTestCase FAILED
>>> ...
>>>
>>
>> These don't fail on Hudson?
>> http://hudson.jboss.org/hudson/job/JBoss-AS-5.0.x-TestSuite-sun15/lastBuild/testReport/org.jboss.test.deployers.seam.test/
>>
>>
>>
>>> [junit] Running org.jboss.test.xml.DDValidatorUnitTestCase
>>> [junit] Tests run: 7, Failures: 1, Errors: 0, Time elapsed: 19.297 sec
>>> [junit] Test org.jboss.test.xml.DDValidatorUnitTestCase FAILED
>>>
>>
>>
>> This is a jboss-web.xml in the clustering tests that is failing
>> schema/dtd validation:
>> http://hudson.jboss.org/hudson/job/JBoss-AS-5.0.x-TestSuite-sun15/lastBuild/testReport/org.jboss.test.xml/DDValidatorUnitTestCase/testJBossWeb/
>>
>>
>>> _______________________________________________
>>> jboss-development mailing list
>>> jboss-development at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/jboss-development
>>>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> jboss-development mailing list
> jboss-development at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-development
More information about the jboss-development
mailing list