I was trying to apply a CPU (Critical Patch Update) on an older version of Oracle WebLogic Server, namely 11g (10.3.6). This is done through the bsu utility.

I received the following OutOfMemory exception when trying to apply the patch:

oracle@weblogicdev:/u01/oracle/middleware/utils/bsu> ./bsu.sh -install -patch_download_dir=/u01/oracle/middleware/utils/bsu/cache_dir -patchlist=FMJJ -prod_dir=/u01/oracle/middleware/wlserver_10.3
Exception in thread "Main Thread" Exception in thread "Thread-0" java.lang.OutOfMemoryError
java.lang.NoClassDefFoundError: com/bea/plateng/patch/PatchSystem
        at com.bea.plateng.patch.PatchClientHelper.getAllPatchDetails(PatchClientHelper.java:74)
        at com.bea.plateng.patch.PatchInstallationHelper.cleanupPatchSets(PatchInstallationHelper.java:130)
        at com.bea.plateng.patch.PatchTarget.(PatchTarget.java:272)
        at com.bea.plateng.patch.PatchTargetFactory.create(PatchTargetFactory.java:30)
        at com.bea.plateng.patch.ProductAliasTarget.constructPatchTargetList(ProductAliasTarget.java:88)
        at com.bea.plateng.patch.ProductAliasTarget.(ProductAliasTarget.java:46)
        at com.bea.plateng.patch.ProductAliasTargetHelper.getProdAliasTargetList(ProductAliasTargetHelper.java:55)
        at com.bea.plateng.patch.ProductAliasTargetHelper.getAllHomeToProdAliasesTargetMap(ProductAliasTargetHelper.java:32)
        at com.bea.plateng.patch.ProductAliasTargetHelper.checkProfilesInProductAliases(ProductAliasTargetHelper.java:133)
        at com.bea.plateng.patch.Patch$1.run(Patch.java:376)
        at java.lang.Thread.run(Thread.java:662)

To resolve this, you can simply edit the bsu.sh file and increase the memory settings.

Old settings:

#!/bin/sh

JAVA_HOME="/u01/oracle/JRockit"

MEM_ARGS="-Xms256m -Xmx512m"

"$JAVA_HOME/bin/java" ${MEM_ARGS} -jar patch-client.jar $*

New settings:

#!/bin/sh

JAVA_HOME="/u01/oracle/JRockit"

MEM_ARGS="-Xms2048m -Xmx2048m"

"$JAVA_HOME/bin/java" ${MEM_ARGS} -jar patch-client.jar $*